当使用apache.HttpClient发送多个部分时,我生成如下输出:
18:29:58.800调试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
所以我的问题是,我是否可以用"apache.httpclient“删除java中的字符集和内容传输编码?这样我就可以消除这两个请求之间的差异。我查看了库源代码,它似乎是不可能的,它总是默认为某些值。
(为什么Postman不显示我发送的xml文件?)
发布于 2014-11-19 14:31:03
在使用Apache HttpClient生成多部分mime实体时,确保使用所谓的“lax”模式
http://hc.apache.org/httpcomponents-client-4.3.x/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntityBuilder.html#setLaxMode()
https://stackoverflow.com/questions/27001382
复制相似问题