multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
情景再现:
上传文件到.net(wcf)后台时,总是上传不成功,后台要求Content-Type是application/octet-stream,我使用multipart/form-data方式,content-type是multipart/form-data,后来查了查这是两种不同的内容类型,在http的请求体中,数据组织方式不一样,所以,后台接收失败。
multipart/form-data:
1、既可以提交普通键值对,也可以提交(多个)文件键值对。
2、HTTP规范中的Content-Type不包含此类型,只能用在POST提交方式下,属于http客户端(浏览器、java httpclient)的扩展
3、通常在浏览器表单中,或者http客户端(java httpclient)中使用。
页面中,form的enctype是multipart/form-data,提交时,content-type也是multipart/form-data。
multipart/form-data格式,
- POST http://www.xx.com/myproject/service1
- Host: 192.168.0.201:8694
- Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
- Cache-Control: no-cache
- Postman-Token: c3d85a6c-9849-7e3e-5c89-5b994b335b1d
- ----WebKitFormBoundary7MA4YWxkTrZu0gW
- Content-Disposition: form-data; name="name1"
- value1
- ----WebKitFormBoundary7MA4YWxkTrZu0gW
- Content-Disposition: form-data; name="name2"
- value2
- ----WebKitFormBoundary7MA4YWxkTrZu0gW
- Content-Disposition: form-data; name="file1"; filename="94b5b232gw1ewlx3p595wg20ak0574qq.gif"
- Content-Type: image/gif
- ----WebKitFormBoundary7MA4YWxkTrZu0gW
- Content-Disposition: form-data; name="file2"; filename="1443175219259.jpg"
- Content-Type: image/jpeg
- ----WebKitFormBoundary7MA4YWxkTrZu0gW
application/octet-stream
1、只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)
2、属于HTTP规范中Content-Type的一种
3、很少使用
application/x-www-form-urlencoded
1、不属于http content-type规范,通常用于浏览器表单提交,数据组织格式:name1=value1&name2=value2,post时会放入http body,get时,显示在在地址栏。
2、所有键与值,都会被urlencoded,请查看urlencoder
数据组织格式
- POST http://www.xx.com/myproject/service HTTP/1.1
- Host: 192.168.0.201:8694
- Content-Type: application/json
- Cache-Control: no-cache
- Postman-Token: f5f6240c-08d3-8695-9473-607038f71eaa
- name11=file1&name2=value2
参考:
HTTP Content-type对照表
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded相关推荐
- vue axios POST请求中参数以form data和request payload形式的原因
HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value& ...
- 获取referer中的请求参数_Servlet获取AJAX POST请求中参数以form data和request payload形式传输的方法...
本文实例讲述了Servlet获取AJAX POST请求中参数以form data和request payload形式传输的方法.分享给大家供大家参考,具体如下: HTTP请求中,如果是get请求,那么 ...
- form data和request payload的区别
2019独角兽企业重金招聘Python工程师标准>>> HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: < ...
- AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式
HTTP请求中,假设是get请求,那么表单參数以name=value&name1=value1的形式附到url的后面,假设是post请求,那么表单參数是在请求体中,也是以name=value& ...
- flux读取不到数据_WebFlux 中form data获取不到参数问题
Spring WebFlux 中, request.queryParams 只能获取到 查询参数, 对于 form 提交的参数无法进行参数自动装载 处理方式有两种: 一. 自定义 ArgumentRe ...
- java request payload_前后端联调之Form Data与Request Payload,你真的了解吗?
前言 做过前后端联调的小伙伴,可能有时会遇到一些问题.例如,我明明传递数据给后端了,后端为什么说没收到呢?这时候可能就会就会有小伙伴陷入迷茫,本文从chrome-dev-tools(F12调试器)中看 ...
- Web前沿—HTML5 Form Data 对象的使用
XMLHttpRequest Level 2 添加了一个新的接口--FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...
- http协议的Request Payload 和 Form Data 的区别
Request Payload VS Form Data 前端请求 我看了前端发起的请求,请求正文并不是我熟悉的 Form Data,而是 Request Payload.如图注意下面两个请求的 Co ...
- Vue-resource中post请求将data数据以request payload转换为form data的形式
今天在做项目的时候 需要往api中发送一个json格式的对象,但是怎么改都不行,当然,使用的vue 的 http方法. 而且,开始使用时 vue-resource中post请求时的一个坑,vue-re ...
- angularjs中$http模块发送post请求request payload转form data
背景: ionic+ angularjs+ cordova 在开发一个证书照片删除的时候,后端提供了一个post接口,需要前端将数据转化成form data.而在angularjs中,如果直接用pos ...
最新文章
- 从USB闪存驱动器启动 Hiren的BootCD --制作U盘启动盘
- jquery+原生js模拟淘宝输入框下拉提示
- 十一、Shell 文件包含
- 基因组中的趣事(一):这个基因编码98种转录本
- [海隆软件][方正电机]IPO,打新股中
- 鸿蒙系统电脑模拟运行,安卓游戏在鸿蒙运行被识别为PC端模拟器,鸿蒙生态依然欠缺!...
- [原]极域电子教室3个没被发现的bug(V6 2007)
- java 暴露接口_Java基于spring暴露接口供外部调用
- MATLAB超限邻域滤波
- 用5000字长文记录华为仓库服务GaussDB(DWS)上手过程【这次高斯不是数学家】
- 使用开源人脸特征提取器进行脸部颜值评分
- Android7.0上拍照与选择照片Crash问题
- ACurveTracer软件-可兼容多种仪器的测量软件
- (三十)AO和GO剖析
- error日志显示不全的问题,-XX:-OmitStackTraceInFastThrow
- 区块链技术加持下的社交软件又能玩出什么新花样
- 第七诫:不可不关注生活和亲近大自然
- 我浅浅驻足,徒留深深缠绵
- Linux_2 管道(任务间的通信)
- (转)Windows应用程序中动态的控制输入法
热门文章
- android p ify 三星,Enjarify - Android逆向(二)
- r 语言ylim = c(0 1),今日R--条形图(barplot)
- Android-7.0-Nuplayer流程图
- Android AP模式下获取SSID/PASSWORD(反射机制
- Android之Camera预览
- Android添加开机完成后脚本(boot_completed)
- 阿里云服务器ECS和腾讯云服务器如何安装宝塔面板?
- linux服务器学习笔记:如何使用密钥认证机制远程登录linux?
- python selenium安装失败_python:学习selenium遇到的坑
- 每日三道前端面试题--vue 第三弹