美文网首页
Post请求的两种编码格式:application/x-www-

Post请求的两种编码格式:application/x-www-

作者: 空口言_1d2e | 来源:发表于2019-08-09 09:16 被阅读0次

    在常见业务开发中,POST请求常常在这些地方使用:前端表单提交时、调用接口代码时和使用Postman测试接口时。

    一、前端表单提交时

    application/x-www-form-urlencoded

    <form action="http://localhost:8888/task/" method="POST">
    First name: <input type="text" name="firstName" value="Mickey&"><br>
    Last name: <input type="text" name="lastName" value="Mouse "><br>
    <input type="submit" value="提交">
    </form>
    

    通过测试发现可以正常访问接口,在Chrome的开发者工具中可以看出,表单上传编码格式为application/x-www-form-urlencoded(Request Headers中),参数的格式为key=value&key=value。


    image.png

    我们可以看出,服务器知道参数用符号&间隔,如果参数值中需要&,则必须对其进行编码。编码格式就是application/x-www-form-urlencoded(将键值对的参数用&连接起来,如果有空格,将空格转换为+加号;有特殊符号,将特殊符号转换为ASCII HEX值)。
    application/x-www-form-urlencoded是浏览器默认的编码格式。对于Get请求,是将参数转换?key=value&key=value格式,连接到url后

    multipart/form-data

    <form action="http://localhost:8888/task/" method="POST" enctype="multipart/form-data">
    First name: <input type="text" name="firstName" value="Mickey&"><br>
    Last name: <input type="text" name="lastName" value="Mouse "><br>
    <input type="submit" value="提交">
    </form>
    

    我们在开发者工具中可以看出multipart/form-data不会对参数编码,使用的boundary(分割线),相当于&,boundary的值是----Web**AJv3。


    image.png

    总结

    POST请求的两种编码格式:application/x-www-urlencoded是浏览器默认的编码格式,用于键值对参数,参数之间用&间隔;multipart/form-data常用于文件等二进制,也可用于键值对参数,最后连接成一串字符传输(参考Java OK HTTP)。除了这两个编码格式,还有application/json也经常使用。
    参考

    相关文章

      网友评论

          本文标题:Post请求的两种编码格式:application/x-www-

          本文链接:https://www.haomeiwen.com/subject/ssxcjctx.html