post数据类型以及http请求头的Content-Type详解

一、响应头的Content-Type
响应头的Content-Type的决定了该使用什么方式来解析数据,这一点一般都比较了解。

二、请求头的Content-Type

示例demo地址:https://gitee.com/phprao/socket/blob/master/server/socketServerEpoll.php
是一个tcp服务

我们在发送post数据的时候,由于数据放在body里面,并且可以发送很多类型的的数据,所以在这种情况下Content-Type将会非常重要,直接影响着对方如何来解析你发送的数据。
GET 请求不存在请求实体部分,键值对参数放置在 URL 尾部,因此请求头不需要设置 Content-Type 字段。

我们打开postman,点击body支持五种类型,分别是:form-data、x-www-form-urlencoded、raw、binary、GraphQL
在这里插入图片描述
1、form-data
我们知道在form表单中要想上传文件,那么enctype应该设置为 multipart/form-data,类似于这样:

<form method="post" enctype="multipart/form-data">
    <input type="text" name="title" value="harttle">
    <input type="file" name="avatar">
    <input type="submit">
</form>

将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
在postman中点击form-data。新建两个键值对,并将鼠标移到任意一个key上面,会出来一个下拉箭头,你可以指定该字段值的类型,可以是文本或文件,如果你选择文件,那么value处可以选择文件。
在这里插入图片描述
在这里插入图片描述
我们切换到Headers标签页就可以看到 Content-Type,这是postman根据你选择的Body类型自动生成的。
在这里插入图片描述
点击发送,查看接收到的数据
在这里插入图片描述
boundary后面的值"--------------------------784773003720398747551891"很明显就是后面字段之间的分割符。如果是文件的话,还会标注文件的名称和类型,由此可见body里面的数据便很容易就被解析清楚了。

2、x-www-form-urlencoded
将表单内的数据转换成 key-value 对,并以 & 符拼接成一个串,并且这是默认的类型。urlencoded的意思是如果最终的字符串存在非ASCII字符集的字符,将会执行 urlencode 来编码。
把鼠标移到key的字段上面并没有出现text/file的下拉框,可见,value只支持文本类型。
在这里插入图片描述
切换到 Headers
在这里插入图片描述
点击发送,查看接收的数据
在这里插入图片描述
3、raw
顾名思义就是原始数据,并且需要设置数据的类型以便对方可以正确的解析 text / javascript / json / html / xml。默认是 text。针对不同的数据类型,Headers 里面的Content-Type会有不同的值。

text 		=> text/plain
javascript 	=> application/javascript
json 		=> application/json
html 		=> text/html
xml 		=> application/xml

在这里插入图片描述
在这里插入图片描述
4、binary
将文件中的内容发送出去,并不会发送文件名称和类型等信息,这个与 form-data 是有区别的。Content-Type 为 text/plain
比如文本文件
在这里插入图片描述
在这里插入图片描述
图片文件
在这里插入图片描述

最后需要名称一点的是,严格来说,post的数据只会在body里面,也就是对方只会去body里面取,比如:将body置空,将参数放在url中,使用post发送,那么对方什么也收不到。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值