Java ApacheHttpClient-如何反序列化响应
我正在通过HttpClient调用一个外部Web服务,但在转换得到的响应时遇到了问题。这是一个mtom响应,如下所示: --MIMBOUNDARYURN_uuid_5CF5D04EE84169F28B1567408992661 内容类型:应用程序/xop+xml;字符集=UTF-8;type=“text/xml” 内容传输编码:二进制 内容ID:Java ApacheHttpClient-如何反序列化响应,java,apache,apache-httpclient-4.x,Java,Apache,Apache Httpclient 4.x,我正在通过HttpClient调用一个外部Web服务,但在转换得到的响应时遇到了问题。这是一个mtom响应,如下所示: --MIMBOUNDARYURN_uuid_5CF5D04EE84169F28B1567408992661 内容类型:应用程序/xop+xml;字符集=UTF-8;type=“text/xml” 内容传输编码:二进制 内容ID: WS000000 处理已成功完成。 111000 619344 550211 052015_619344_XXXX_YYYY_1567408
WS000000
处理已成功完成。
111000 619344
550211
052015_619344_XXXX_YYYY_1567408989171.zip.crypt
--MIMBOUNDARYURN_uuid_5CF5D04EE84169F28B1567408992661
内容类型:应用程序/八位字节流
内容传输编码:二进制
内容ID:
ï½ï½ï½ï½ïï½ï½ïï½ï½ïï½ïï½ï
5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5日5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5月5日日日日5日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的的的的一一一一个月5月5月5月5月5月5月5日日日日日日日日日日日日日日日日日的的的uxï½yï½ï½ï½ï½ï½ï½ï½ïï½ïï½ïï½ïï½ïï½ïï
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns3:executeResponse xmlns:ns2="http://www.myservice.com/bside/plugins/webservices/bigdata/types" xmlns:ns3="http://www.myservice.com/bside/plugins/webservices/bigdata/ws/THCommand/">
<returnCode>WS000000</returnCode>
<returnCodeDescription>Processing completed successfully.</returnCodeDescription>
<systemInfo>
<ns2:userId>111000</ns2:userId> <ns2:rsId>619344</ns2:rsId>
<ns2:sessionId>550211</ns2:sessionId>
</systemInfo>
<responseFile>
<ns2:name>052015_619344_XXXX_YYYY_1567408989171.zip.crypt</ns2:name>
<ns2:content>
<xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:urn:uuid:5CF5D04EE84169F28B1567408992663@apache.org"/>
</ns2:content>
</responseFile>
</ns3:executeResponse>
</soapenv:Body>
</soapenv:Envelope>
String ct = response.getLastHeader("Content-Type").toString().replace("Content-Type: ", "");
String responseContent = null;
if (entity != null) {
responseContent = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8.name());
MessageImpl msg = new MessageImpl();
Exchange exchange = new ExchangeImpl();
msg.setExchange(exchange);
InputStream is = new ByteArrayInputStream(responseContent.getBytes());
msg.put(Message.CONTENT_TYPE, ct);
msg.setContent(InputStream.class, is);
AttachmentDeserializer deserializer = new AttachmentDeserializer(msg);
deserializer.initializeAttachments();
InputStream attBody = msg.getContent(InputStream.class);
String attMimeType = msg.getAttachmentMimeType();
Collection<Attachment> atts = msg.getAttachments();
Iterator<Attachment> itr = atts.iterator();
Attachment a = itr.next();
InputStream attIs = a.getDataHandler().getInputStream();
}