Postman form-data、x-www-form-urlencoded的区别

这篇具有很好参考价值的文章主要介绍了Postman form-data、x-www-form-urlencoded的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在平时的postman请求调试,以及web的http请求开发时,常常能看到以下几种传参的形式 form-data、x-www-form-urlencoded、raw、binary,那么这些请求方式的区别是什么呢?

1form-data:

就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

postman form-data,java,开发工具,java,postman,前端

 

上图中我们可以看到在postman中form-data选项,key是有下拉选择项的,这也说明了form-data类型支持key-value和文件传输。

postman form-data,java,开发工具,java,postman,前端

 

上图中我们可以看到,明显的不同的key参数之间是有boundary分割的。每个参数都有Content-Disposition: form-data; name="xxx"信息

2x-www-form-urlencoded

就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23

postman form-data,java,开发工具,java,postman,前端

 

我们可以看到,这个形式的传参方式,postman的key是并没有像form-data一样改出File的下拉选项的,这也说明了这种方式只支持string的key-value值传递。

postman form-data,java,开发工具,java,postman,前端

 

在上图中我们也能明显的看到在httpbody体中传输的格式。同时我们也看到对于存在中文和空格的情况,它是会进行转换的

1、它是post的默认格式,使用js中URLencode转码方法。包括将name、value中的空格替换为加号;将非ascii字符做百分号编码;将input的name、value用‘=’连接,不同的input之间用‘&’连接。
2、百分号编码什么意思呢。比如汉字‘丁’吧,他的utf8编码在十六进制下是0xE4B881,占3个字节,把它转成字符串‘E4B881’,变成了六个字节,每两个字节前加上百分号前缀,得到字符串“%E4%B8%81”,变成九个ascii字符,占九个字节(十六进制下是0x244534254238253831)。把这九个字节拼接到数据包里,这样就可以传输“非ascii字符的 utf8编码的 十六进制表示的 字符串的 百分号形式。
3、同样使用URLencode转码,这种post格式跟get的区别在于,get把转换、拼接完的字符串用‘?’直接与表单的action连接作为URL使用,所以请求体里没有数据;而post把转换、拼接后的字符串放在了请求体里,不会在浏览器的地址栏显示,因而更安全一些。
4、对于一段utf8编码的字节,用application/x-www-form-urlencoded传输其中的ascii字符没有问题,但对于非ascii字符传输效率就很低了(汉字‘丁’从三字节变成了九字节),因此在传很长的字节(如文件)时应用multipart/form-data格式。smtp等协议也使用或借鉴了此格式。
5、multipart/form-data将表单中的每个input转为了一个由boundary分割的小格式,没有转码,直接将utf8字节拼接到请求体中,在本地有多少字节实际就发送多少字节,极大提高了效率,适合传输长字节。

3raw

可以上传任意格式的文本,可以上传text、json、xml、html等

postman form-data,java,开发工具,java,postman,前端

http的传输格式:

postman form-data,java,开发工具,java,postman,前端

 

4binary

相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。

postman form-data,java,开发工具,java,postman,前端

postman中也可以看出,下面只有一个select file的功能。也说明只能传文件。

postman form-data,java,开发工具,java,postman,前端

 

辅助

postman有个很好用的功能预览代码,点击右侧code,选择格式

postman form-data,java,开发工具,java,postman,前端

 

有多种格式,尤其是对于各种语言的功能,比如像Go语言,直接生成代码。文章来源地址https://www.toymoban.com/news/detail-819808.html

到了这里,关于Postman form-data、x-www-form-urlencoded的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • asp.net core webapi接收application/x-www-form-urlencoded和form-data参数

    框架:asp.net core webapi asp.net core webapi接收参数,请求变量设置 Post ([FromForm]TokenRequestInput user) 可以接收发送类型为multipart/form-data、application/x-www-form-urlencoded的数据 请求地址 http://localhost:5170/api/User/GetToken?code=22222 IFormFile file这个参数是接收文件,mimeType=multipart/form-data 参数use

    2024年04月15日
    浏览(29)
  • Params、form-data、x-www-form-urlencoded、raw、binary的区别及后端接收方式

    1、Params 的请求参数会出现在url中,为key=value格式,后端可以用@RequestParam接收。  2、form-data的请求是在body中,为key=value格式,同时可以传文件,Content-Type为multipart/form-data,后端可以用@RequestParam接收。 3、x-www-form-urlencoded的请求是在body中, 为key=value格式,无法传文件,Con

    2024年02月12日
    浏览(36)
  • 前端数据格式解析 json,form(application/json、application/x-www-form-urlencoded、multipart/form-data)

    这几天编写web前端时,在处理前端数据发回后端时遇到了一些数据格式的问题,查了不少资料后准备整理总结一下。 常见的有两种格式 json与form json,全称是javascript object notation,即JavaScript对象标记法 json,一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-

    2024年02月03日
    浏览(55)
  • java实现postman为x-www-form-urlencoded的调用

    1.客户端实现 导入http-client jar。 2.服务端实现

    2024年02月11日
    浏览(29)
  • application/x-www-form-urlencoded

    在请求中,有一种数据传输的 Content-Type 是 application/x-www-form-urlencoded 。 这种数据格式的接口,在发送请求时,与我们习惯的 application/json 的形式不一样。这半个月,有个地方没理解透,被坑了很长时间。接口是通的,按接口的要求,把数据传输过去,收到的结果始终是处理

    2024年02月11日
    浏览(28)
  • x-www-form-urlencoded接收方式代码示例

    数据回推方式是 “x-www-form-urlencoded”,可以选择使用 GET 或 POST 方法来接收数据回推。 使用 GET 方法接收数据回推时,您可以将数据作为查询参数附加在请求的 URL 中。例如: http://example.com/callback?param1=value1param2=value2 在服务器端,可以使用相应的框架或库从请求的查询参数中

    2024年01月19日
    浏览(40)
  • Vue给接口传x-www-form-urlencoded类型参数

    今天在前端调用后端接口的时候出现了很多问题,出现问题的原因是跟后端没有及时的去沟通,自己一个人参考swagger接口文档闷头苦干。结果接口一直报400XSS参数攻击异常,没办法跟后端对接后才成功调用接口。 如何给接口传x-www-form-urlencoded类型的参数呢??? 参考一下代

    2024年02月13日
    浏览(29)
  • java restful application/x-www-form-urlencoded 传递参数

            在发送短信的时候,要使用x-www-form-urlencoded的编码格式进行传递参数。  具体要求: 参数名称 说明 备注 userId 用户名 timespan 时间戳 格式为yyyyMMddHHmmss password 密码 此处用原始密码+时间戳 做MD5加密,32位大写格式   phone 手机号 多个用英文逗号隔开 msgType 编码类型 选

    2024年02月14日
    浏览(33)
  • SAP 调取http的x-www-form-urlencoded形式的接口

    一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别 简单来说, 1.raw格式就是标准的json格式:{“Name”:“John Smith”,“Age”: 23} 2.x-www格式是要转化一下的:Name=John+SmithAge=23 字段与字段相互连接要用 符号,空格用 + 连接。所以说当你的关键参数里面带有这些特殊符号时,就

    2024年02月04日
    浏览(33)
  • Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

    目录 Qt网络编程post请求,数据格式为json或x-www-form-urlencoded 一、.H文件 1、.h头文件 2、.h主代码 二、.CPP文件 1、主代码  三、响应信息 返回结果(Josn数据格式输出) 四、Post数据格式参数及数据类型定义 1、Post:application/x-www-form-urlencoded数据类型格式 2、Post:application/json数据

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包