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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】

什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们...

3295
来自专栏王磊的博客

WebApi开启CORS支持跨域POST

概念:CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHtt...

4208
来自专栏Linux驱动

15.linux-LCD层次分析(详解)

如果我们的系统要用GUI(图形界面接口),这时LCD设备驱动程序就应该编写成frambuffer接口,而不是像之前那样只编写操作底层的LCD控制器接口。 什么是...

2726
来自专栏编程心路

一文读懂SpringMVC中的文件上传与下载

这两天研究了一下 SpringMVC 中文件上传与下载,也遇到了一些坑,这里做个总结。

4144
来自专栏雨过天晴

转 PHP-redis编译成功

1773
来自专栏行者悟空

利用zookeeper实现服务上线(离线)自动感知

3182
来自专栏布尔

Mercury Editor学习心得

Mercury Editor自称是全特性HTML5编辑器。It  was built from the grond to help your team get ...

1937
来自专栏坚毅的PHP

jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www

tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: publi...

6105
来自专栏yukong的小专栏

【SpringBoot系列04】SpringBoot之使用JPA完成简单的rest api

【SpringBoot2.0系列02】SpringBoot之使用Thymeleaf视图模板

1756
来自专栏岑玉海

Hadoop源码系列(一)FairScheduler申请和分配container的过程

1、如何申请资源 1.1 如何启动AM并申请资源 1.1.1 如何启动AM val yarnClient = YarnClient.createYarnClie...

4514

扫码关注云+社区

领取腾讯云代金券