zoukankan      html  css  js  c++  java
  • 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 Content-Disposition:"form-data";name"

    搜了一下post的数据格式,发现需要加boundary,于是加上boundary做post

    使用-d参数传递body时报错 :

    curl  -H "Content-type:multipart/form-data;boundary=--7db372eb000e2" -d '----7db372eb000e2 Content-Disposition:"form-data";name="file";filename="@xx.jpg";----7db372eb000e2-- ' "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

  • 相关阅读:
    排序算法-简单选择排序
    pygame模块的简介
    python设计模式之工厂模式
    一次完整的HTTP请求流程(当我们在浏览器输入一个URL后,发生了什么)
    HTTP协议,TCP、UDP协议
    Django rest framework框架中有哪些组件
    flask
    Flask上下文管理
    mac如何开启两个vmware虚拟机
    HTTP状态码
  • 原文地址:https://www.cnblogs.com/shenguanpu/p/3154362.html
Copyright © 2011-2022 走看看