对multipart/form-data请求的参数处理,是先上传文件,再获取参数的。
因为multipart/form-data本身就是可以把文件当参数上传的,可能是考虑到缓存或者方便处理文件类型的参数,所以采用了临时文件的处理方式。
对application/x-www-form-urlencoded请求参数的处理
对application/x-www-form-urlencoded类型参数的处理,处理的大概流程是这样的:
1,获得参数长度。
就是这行代码:
int len = this.getContentLength();
因为ContentType是application/x-www-form-urlencoded时,请求的参数会被组成
pageSize=10&code=&pro=123
这种形式,跟get方式的参数挺像,只不过get方式的参数写在地址里,Post方式的这些参数写在body里。
在这里请求的参数是以byte数组的形式存在的,不是字符串。
- multipart/form-data与x-www-form-urlencoded的区别
multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息
x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的。
原文:https://blog.csdn.net/lkforce/article/details/93206867