【问题标题】:Apache HttpClient PostManApache HttpClient 邮递员
【发布时间】:2015-01-16 01:24:16
【问题描述】:

当使用 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 文件?)

【问题讨论】:

  • 通常最好提及您使用的库版本

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多