HTTP中form-data、x-www-form-urlencoded、raw、binary的区别

【转】form-data、x-www-form-urlencoded、raw、binary的区别 文章大纲 一、form-data介绍 二、x-www-form-urlencoded介绍 三、raw介绍 四、binary介绍 五、参考文章 一、form-data介绍 http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息; 由于有boundary隔离,所以multipart/f 阅读详情

前言

在日常接口对接工作中经常遇到如上HTTP请求类型,虽然最常用的是POST但是即便这种方式也会在第三方应用中看到不同的请求格式;现总结下以方便区分。

常见的请求类型

格式说明
form-data就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以boundary标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件
x-www-form-urlencoded就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对name=java&age = 23 ,当模拟表单上传数据时,用此选项,但不能上传文件,只能是文本格式
raw可以上传text、json、xml、html等格式,当后端要求json数据格式的时候,就要使用此种格式来测试
binary相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。这个不是很常用
GraphQL不常用

需要注意的是multipart/form-data与x-www-form-urlencoded区别:

multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;

x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

multipart/form-data格式

每个字段可以指定不同的格式,text和file;相比其他格式它的最大区别
可以看到它会把form中的字段合成一个报文字符串,然后每个字段用boundary的随机字符串值做分割线,而数据则根据每个分割中的Content-Type类型加载不同的数据,默认是字符串,如果是文件则会加载文件二进制数据;


GET /interfaceService/hrpjob/00 HTTP/1.1
Host: localhost:8607
Content-Length: 374
Content-Type: multipart/form-data; 
boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="name"

zjcjava
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="age"

18
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file1"; filename="/C:/Users/zjcjava/Downloads/1.jpg"
Content-Type: image/jpeg

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW

在这里插入图片描述

x-www-form-urlencoded格式

会把form中的数据合并为键值对的方式用&拼接为一个字符串;这种格式不能上传文件,只能传递文本字符串

GET /interfaceService/hrpjob/00 HTTP/1.1
Host: localhost:8607
Content-Type: application/x-www-form-urlencoded
Content-Length: 19

name=zjcjava&age=18

在这里插入图片描述

raw格式化字符串格式

Content-Type必须指定统一格式化类型,可以上传text、json、xml、html等格式,里面只有一种格式参数

GET /interfaceService/hrpjob/00 HTTP/1.1
Host: localhost:8607
Content-Type: application/json
Content-Length: 22

{
    "adf": 13243
}

在这里插入图片描述

【工具使用】apizza和postman中post请求下form-data、x-www-form-urlencoded、raw、binary的区别 众所周知请求是可以带参数的,其实form-data、x-www-form-urlencoded、raw、binary就是发送什么格式的参数而已,没那么神秘1、form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;... 阅读详情

相关推荐

Android架构中UseCase的设计原则与实战解析

本文深入解析Android架构中UseCase的设计原则与实战应用,探讨其在Domain Layer中的核心作用。通过对比ViewModel的臃肿问题,详细阐述UseCase的无状态原则、单一职责边界等设计铁律,并提供多种实现方式的代码示例,帮助开发者构建更清晰、高效的Android应用架构。

weixin_28432777的博客 431

okhttp3 POST请求application/x-www-form-urlencoded如何跳过FormBody表单元素的编码

okhttp3 application/x-www-form-urlencoded请求如何跳过FormBody表单元素的编码。

llp1990311的博客 8933

VisionMaster位置修正功能深度解析:如何让找圆工具自动跟随移动目标?

本文深度解析海康威视VisionMaster平台的位置修正功能,重点介绍如何通过模板匹配与找圆工具的智能联动实现移动目标的动态追踪。文章详细阐述了工业视觉检测中的坐标系同步原理、模板匹配配置技巧及异常处理策略,为工程师提供了一套完整的工业级解决方案。

uu89012的博客 280

form-data和x-www-form-urlencoded的区别和延伸

form-data和x-www-form-urlencoded,它们完整的表示是multipart/form-data和application/x-www-form-urlencoded。为了方便,我们下面就用form-data和x-www-form-urlencoded表示。两者的区别,可谓是老生常谈,随便百度一下,也是有大堆资料。好了,闲话少叙,我们进入正题。

代码君 1万+

OnePlus线刷救砖与OTA全量包:从故障恢复到系统升级的完整指南

本文详细介绍了OnePlus手机线刷救砖与OTA全量包的完整操作指南,包括故障诊断、线刷救砖实战教程、OTA全量包升级优势及进阶玩法。通过具体案例和实用技巧,帮助用户从系统故障恢复到安全升级,特别适合Android系统爱好者和OnePlus用户。

weixin_30338481的博客 615

(ICLR 2025)【源码讲解+复现】TIMER-XL: Long-Context Transformers for Unified Time Series Forecasting

本文提出了一种统一的多变量时序预测模型Timer-XL,其核心创新包括:1)采用自回归解码器架构,将多变量时序预测统一为next-token预测问题;2)设计TimeAttention机制,通过相对位置编码和因果掩码捕获时序位置和变量间交互;3)支持长上下文预训练以提升零样本迁移能力。模型架构包含嵌入层、时间感知注意力块和预测头,采用MSE损失进行端到端训练。实验表明该方法在多种时序任务上表现优异,特别是在长跨度预测和少样本场景下。代码实现提供了完整的模型定义、数据加载和训练流程,支持自定义配置参数。

1145

x-www-form-urlencoded到底是什么?

概述: x-www-form-urlencoded纸面翻译即所谓url格式的编码,是post的默认Content-Type 一、位置: 请求头內的Content-Type字段里, 二、写法: Content-Type:application/x-www-form-urlencoded 三、用处: get请求的请求体格式是什么?get请求是拼接在url后面请求的,一般如此username=to...

印第安米饭 3万+

在STM32F103RBT6微控制器上利用USB虚拟Com端口技术,高效实现ADC数据传输:详细操作步骤与示例代码解析

以上就是在STM32F103RBT6上使用USB虚拟Com端口实现ADC数据传输的全部内容。虽然过程中有很多步骤和细节需要注意,但只要按照步骤来,理解每一段代码的作用,就完全可以掌握这个过程。在实际应用中,我们可能需要根据实际需要修改一些代码,如调整ADC的参数,改变数据的处理方式等。但是,只要理解了这个过程,我们就可以很灵活地进行修改。希望这篇文章对你有所帮助。如果你有任何疑问,欢迎在评论区留言,我会尽我所能进行解答。

qq_38334677的博客 1168

Http 客户端 OkHttp 的基本使用

叙述 okhttp是一款优秀的http客户端,支持异步,http2等等。 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.14.0</version> </dependency> 基本的组件 OkHttpClient 它类似于一个

lizhengyu891231的博客 885

YOLOv5/v7/v8首发革新改进——轻巧、创新的LADH检测头

本文介绍了一种原创改进的轻量化非对称多级压缩LADH检测头,该检测头能够实现即插即用,并在YOLOv5/v7/v8检测器中取得了显著的性能提升。本文将介绍一种原创改进的轻量级非对称多级压缩LADH(Lightweight Asymmetric Dual-Head)检测头,该检测头能够实现即插即用,并显著提升YOLO检测器的性能。因此,我们提出了一种非对称多级压缩的方法,即对不同类别的检测头采用不同的压缩比例。然而,为了进一步提高YOLO的性能,我们进行了一项原创改进,设计了一种轻巧且创新的LADH检测头。

IpyVariable的博客 2725

算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

【代码】算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

尘世冰封的专栏 1015

关于接收x-www-form-urlencoded格式数据的后端

关于接收x-www-form-urlencoded格式数据的后端前言一、x-www-form-urlencoded格式是什么?二、后端如何接收1.后端代码(使用@RequestBody+ String类型接收 )2.(错误的)后端代码(使用@RequestBody+ 自己封装类型接收 )3.(错误的)后端代码( 单独String类型接收 )总结 前言 通常在Springboot接收参数时候,都是json格式的传输,使用restful风格,而在实际开发中,可能会接收其它格式的参数,比如x-www-form-

weixin_51614089的博客 3万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HTTP协议 form-data、x-www-form-urlencoded、raw、binary的区别

HTTP协议 form-data、x-www-form-urlencoded、raw、binary的区别

lizhengyu891231的博客 507

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

postman中 form-data、x-www-form-urlencoded、raw、binary的区别

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

ye1992的专栏 13万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【IDE】postman中 form-data、x-www-form-urlencoded、raw和binary的区别

postman中 form-data、x-www-form-urlencoded、raw和binary的区别

tanpenggood 521

前端请求form-data、x-www-form-urlencoded、raw、binary有啥区别

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

知行合一 2173

postman中 form-data,x-www-form-urlencoded,raw, binary 区别详解

一. form-data,x-www-form-urlencoded,raw, binary 区别 使用postman发送json格式数据时,body类型选raw,子类型选JSON,而不必自己设置header 1、form-data: 就是http请求中的multipart/form-data,它**会将表单的数据处理为一条消息**,以标签为单元,用分隔符分开。由于有boundary隔离,所以multipart/form-data既**可以上传键值对,也可以上传文件**(正因为它采取键值对的方式,所

orchid的博客 7391

postman 中的 form-data、x-www-form-urlencoded、raw、binary的区别

POST MAN 模拟提交请求的测试工具。 postman 官网文档: https://www.getpostman.com/docs/ 1、form-data:                     就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Co

Joker_honey的博客 1017

postman中form-data、x-www-form-urlencoded、raw、binary的区别

在日常开发中,通常会因为提交数据的方式不同而导致各种各样的问题,归根结底是因为未能正确认识到POST方式上传数据的几种方式的区别。所以很有必要研究一下这几种提交方式的区别。 form-data方式:表示http请求中的multipart/form-data方式,会将表单的数据处理为一条消息,用分割符隔开,可以上传键值对或者上传文件.比如按照如下方式传输提交数据: 上传的数据为: --l_Sh...

weixin_34404393的博客 229

post请求body格式

在PostMan中用Post方式,Body有form-data,x-www-form-urlencoded,raw,binary四种。 其中raw又分以下7种。 现在来区分一下: form-data是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-T...

weixin_30252709的博客 2万+

postman中 form-data、x-www-form-urlencoded、raw、binary的区别 && 下载文件

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

极客on之路 870
上一篇: 替代visio画图工具Processon和drawio
下一篇: 安装python3.14和cmd下运行python弹出windows应用商店
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值