post multipart data boundary问题 使用curl 向jersey post文件
原以为curl 模拟post file跟post string类似,-d参数一加 ,header一加就完了,这次遇到个问题,却怎么都搞不定。
curl模拟post提交
与客户端定的协议是:
|
Header |
Content-Type: multipart/form-data; |
|
Body |
Content-Disposition: form-data; name="file"; filename="xx.jpg" Content-Type: image/jpeg |
使用curl时,想模拟客户端,结果使用--form 参数传递body时报错:
IllegalArgumentException: Error parsing content disposition: form-data; name="----7db372eb000e2\r\n Content-Disposition:"form-data";name"
搜了一下post的数据格式,发现需要加boundary,于是加上boundary做post
使用-d参数传递body时报错 :
curl -H "Content-type:multipart/form-data;boundary=--7db372eb000e2" -d '----7db372eb000e2\r\n Content-Disposition:"form-data";name="file";filename="@xx.jpg";----7db372eb000e2--\r\n' "http://192.168.50.0:8080/res/v2/upload/pic/photo"
org.jvnet.mimepull.MIMEParsingException: Missing start boundary]
使用网上找的一段java.net.HttpURLConnection (http://blog.csdn.net/skyer_lei/article/details/6106709)代码 post form也报错
最终发现 使用-F参数 上传文件名即可, 不需要写Content-Disposition 之类信息
curl -S -H "Cookie:uss=AAFxAAgqIx3k9bmQMAAAAAADYnr561" -H "Content-type:multipart/form-data" -F file=@/home/work/mfs/storage/lv/public/photo/37/f8/b7510442817b16138d8883d1b392.jpg "http://192.168.50.0:8080/res/v2/upload/pic/photo"
应该是curl会自动给加上,没搞懂客户端模拟的请求为什么总是出错。
找到一个可用的HttpURLConnection test,需要研究下为什么上边那个有问题
http://lapulande.iteye.com/blog/719581
post multipart data boundary问题 使用curl 向jersey post文件的更多相关文章
- 上传文件multipart form-data boundary 说明
含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协议上传文件 rfc1867协议概述,客户端发送内容构造. 概述 ...
- POP3_关于 multipart/related;boundary=
http协议对mime类型有详细描述,multipart/....是单个消息头包含多个消息体的解决方案.multipart媒体类型对发送非文本的各媒体类型是有用的.目前常用的有这些subtype: M ...
- multipart/form-data boundary 说明
含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协议上传文件 rfc1867协议概述,jsp 应用举例,客户端发送内容构造 1.概述在最初 ...
- http 协议上传文件multipart form-data boundary 说明--转载
原文地址:http://xixinfei.iteye.com/blog/2002017 含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协 ...
- org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----WebKitFormBoundaryRAYPKeHKTYSNdzc1;charset=UTF-8' not supported
原文:https://www.cnblogs.com/yueli/p/7552888.html 最近同事在做一个图片上传功能.在入参 body 中同时传入文件和其它基本信息结果出现如题异常.在此记录下 ...
- PHP使用CURL上传|下载文件
CURL下载文件 /** * @param string $img_url 下载文件地址 * @param string $save_path 下载文件保存目录 * @param string $fi ...
- HTTP使用 multipart/form-data 上传多个字段(包括文件字节流 octet-stream)
自己用到的一个向服务器上传多个字段的实例,代码不全,仅做参考. 用的是WinINet,上传的字段中包括文件字节流 /* PHttpRequest中自行组装body之后,HttpSendRequest中 ...
- [PHP]curl上传多文件
码一下curl上传多文件的行 5.5之前版本的写法 $file = array( 'pic[0]'=>"@E:\\wwwroot\\10003\\temp_56.ini;type=te ...
- 【HTTP】boundary 中一个 = 导致HTTP上传文件失败
(1)#define ABOUNDARY "----=_Resume_002_0CE7_01D1C649.298A8070" (2)#define ABOUNDARY " ...
随机推荐
- oracle数据导出工具sqluldr2
oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...
- 献给初学者:谈谈如何学习Linux操作系统
本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...
- GDB调试多线程
先介绍一下GDB多线程调试的基本命令. info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID. 前面有*的是当前调试的线程. th ...
- 如何清除PL/SQL中的缓存
每次查询前清空缓存10g以上:alter system flush buffer_cache;9i:ALTER SESSION SET EVENTS 'immediate trace name flu ...
- 设置IE默认文本模式的方法
设置IE默认文本模式的方法 <meta http-equiv="X-UA-Compatible" content="IE=8" /> IE=5.6. ...
- C语言回顾-函数和位运算
1.函数的概述 功能独立的代码块 C语言由若干函数组成 1)从定义分,库函数和用户定义函数两种 2)从返回值分,有返回值函数和无返回值函数 3)从参数分,无参函数和有参函数 2.形参和实参 1)形参定 ...
- [4] 智能指针boost::scoped_ptr
[1]boost::scoped_ptr简介 boost::scoped_ptr属于boost库,定义在namespace boost中,包含头文件#include <boost/scoped_ ...
- Apple开发者账号简介
苹果对开发者主要分为3类:个人.组织(公司.企业).教育机构.即: 1.个人(Individual) 2.组织(Organizations) 组织类又分为2个小类: (1)公司(Company) (2 ...
- 怎么在php里面利用str_replace防注入
<php /** * 安全过滤函数 * * @param $string * @return string */ function safe_repla ...
- CentOS7安装memcached
三台linux服务器系统CentOS7 一台memcached IP:192.168.155.134 一台Apache IP:192.168.155.130 一台nginx IP:192.168.15 ...