• 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

  • 相关阅读:
    什么是系统瓶颈?
    功能测试之链接测试
    H5页面测试要点
    面向对象编程
    Java 基本语法(1)
    Java语言概述
    Annotation注解(有源代码)
    枚举类专题(有源代码)
    JDBC专题
    JSP专题
  • 原文地址:https://www.cnblogs.com/shenguanpu/p/3154362.html
Copyright © 2020-2023  润新知