java - Apache HttpClient postman

标签 java apache apache-httpclient-4.x postman multipartform-data

当使用 apache.HttpClient 发送多部分时,我生成以下输出:

18:29:58.800 调试 n.n.n.w.e.ServiceImpl -

--bEDi1DhmFcmCTebUvLowWpRtw-OscIydQ24RSB
Content-Disposition: form-data; name="id"
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

ChecknLoadEnvironmentData
--bEDi1DhmFcmCTebUvLowWpRtw-OscIydQ24RSB
Content-Disposition: form-data; name="file"; filename="myfile.xml"
Content-Type: text/xml; charset=ISO-8859-1
Content-Transfer-Encoding: binary

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ImportProgramVersion>3.1</ImportProgramVersion> 
    <Year>2012</Year> 
    ....
    .... 
</Dataset>
--bEDi1DhmFcmCTebUvLowWpRtw-OscIydQ24RSB--

但这似乎因 500 内部服务器错误而失败 PostMan 成功了。

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="id"

ChecknLoadEnvironmentData
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="filename"

myXML.xml
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="file"; filename="myXML.xml"
Content-Type: text/xml


----WebKitFormBoundaryE19zNvXGzXaLvS5C

所以我的问题是,我可以删除java中的字符集和内容传输编码吗 “apache.httpclient”?这样我就可以消除两个请求之间的差异。 我查看了库源代码,似乎不可能,它总是默认为某个值。

(为什么Postman不显示我发送的xml文件?)

最佳答案

使用 Apache HttpClient 生成多部分 MIME 实体时,请确保使用所谓的“宽松”模式

http://hc.apache.org/httpcomponents-client-4.3.x/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntityBuilder.html#setLaxMode()

关于java - Apache HttpClient postman ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001382/

相关文章:

Java ForkJoinPool 线程限制还是 Java 流替代方案?

apache - 如何将我的本地主机暴露给 WWW? (转发端口?)

Apache 正在将文件夹重定向到同名的 .html 文件

java - Apache http 客户端 4.4 : HostnameVerifier transition from 4. 3.x

Java HttpClient - 减少调试输出

c# - 识别 Facebook 域模型中的实体和值对象

java - 如何加载 BufferedImage 作为 DeepLearning4j 中分类器的输入?

java - android中的图像处理

apache - Apache Mahout Maven构建失败MRLegacy

java - 匹配测试下方法内部创建的 HttpGet 对象