在 postman 里面,我们可以看到 form-data 的源代码类似
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| POST /api/order?ab=ab HTTP/1.1 Host: localhost:8081 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW cache-control: no-cache Postman-Token: 07d87f1e-94fd-4656-881c-898cfc66be36
Content-Disposition: form-data; name="goodsId"
1
Content-Disposition: form-data; name="num"
1
Content-Disposition: form-data; name="skuMapIndex"
黄色>M
Content-Disposition: form-data; name="addressId"
1
------WebKitFormBoundary7MA4YWxkTrZu0gW--
|
x-www-form-urlencoded 的源代码类似
1 2 3 4 5 6
| POST /api/order?ab=ab HTTP/1.1 Host: localhost:8081 Content-Type: application/x-www-form-urlencoded cache-control: no-cache Postman-Token: 92f20568-aad7-445d-aaae-e949db87c53d %08apiToken=ljjljja=b
|
x-www-form-urlencoded 优点:
- 使用&连接的k=v字符串,更简洁
缺点:
- 使用utf-8编码,中文长度变长
- 不支持文件(2进制内容)
POST PUT 和 PATCH
标准中 post 用来更新全部内容,put 和 patch 用来更新部分资源。其中 put 是幂等的,patch 不是幂等。
但是实际项目中,即使 post 也不会用来更新全部内容,比如 created_time 就一定是服务器端生成,而不是客户端上传。因此这三者更实用上的区别是:PUT、PATCH 不支持 form-data