通过http发送post请求的三种Content-Type分析

通过okhttp向服务端发起post网络请求,可以通过Content-Type设置发送请求数据的格式。

常用到的三种:

1)application/x-www-form-urlencoded; charset=utf-8

2)application/json; charset=utf-8

3)multipart/form-data

1)先看第一种:application/x-www-form-urlencoded

常用于FORM表单提交,提交的表单数据会转换为键值对并按照key1=val&key2=val2的方式进行编码,key和val都进行了URL转码。

post请求:

通过http发送post请求的三种Content-Type分析_第1张图片

请求的数据通过key=value&key=value的格式发送给服务端

通过http发送post请求的三种Content-Type分析_第2张图片

 2)application/json; charset=utf-8

通过http发送post请求的三种Content-Type分析_第3张图片

请求数据是通过json格式发送给服务端的 

通过http发送post请求的三种Content-Type分析_第4张图片

3)multipart/form-data

通过http发送post请求的三种Content-Type分析_第5张图片

请求的数据格式:

通过http发送post请求的三种Content-Type分析_第6张图片

通过http发送post请求的三种Content-Type分析_第7张图片

通过以上抓包可以看出使用multipart/form-data时,会在Content-Type后在生成一个key=value

boundary=2ead2cc9-95d6-46a3-99bc-b52d77e92548

在请求的数据中:

             以--2ead2cc9-95d6-46a3-99bc-b52d77e92548开头

             以--2ead2cc9-95d6-46a3-99bc-b52d77e92548--结尾

             客户端需要传递给服务端的数据,则写在form-data字段中:name="id" 后面的值3831095就是value值。

你可能感兴趣的:(http,网络协议,网络)