Http 请求中,参数如何传递
GET:
单纯在url后面加入
www.server.com?[arg1]=[value1]&[arg2]=[value2].....
例如:
www.server.com?a=1&b=2.......
那么服务器可用轻易的获取到表单内a=1,b=2的值
*有限制 1KB~2KB
,视协议版本而定,所以参数不要拼得太长,否则就出错
POST:
采用3种形式发送参数(任意数据)
1. application/x-www-form-urlencoded
转码后传过去,多用于简单的参数传递
a=1&b=2
2. multipart/form-data
编码,表单方式传过去,其中-----boundry可以任意指定,属于分隔符
-----boundry
Content-Disposition: form-data; filename="a"
\r\n
1
-----boundry
Content-Disposition: form-data; filename="b"
\r\n
2
-----boundry
这里讨论下文件如何上传
//这里属于可选是否添加表单参数
-----boundry
Content-Disposition: form-data; name="a"
\r\n
1
-----boundry
Content-Disposition: form-data; name="b"
\r\n
2
-----boundry
Content-Disposition: form-data; name="file"; filename="upload.txt"
Content-Type: application/octet-stream
\r\n
//文件内容 例如:1234567890
-----boundry
3. application/json
Json方式传过去
{"a"=1, "b"=2}
参数不再拼接在url中,而是放在数据流里面,---也可以拼接上去,应该属于异曲同工之妙---(不保证对)
其中1,2方式都是标准的方式,第三种要看服务器支持,其实说白了就看服务器怎么写的,如果你们自定义特殊格式也没问题,比如bson,protobuf
网友评论