gpt4 book ai didi

java - Java SOAP 客户端中缺少 Content-Type "start="标记,服务器未找到附件

转载 作者:行者123 更新时间:2023-12-01 05:53:19 25 4
gpt4 key购买 nike

我正在为带有附件的 SOAP 服务创建 Java 客户端。我正在使用 java.xml.soap 类,我以前使用过它,但没有使用附件。服务器声称不包含我的附件。

我使用了 SoapUI(它可以工作)和wireshark 将我的 SOAP 消息与工作的 SOAP 消息进行比较。一个很大的区别是我的标题不包含“start =”。

工作内容类型如下所示:

内容类型:多部分/相关;类型=“文本/xml”;开始=“”;边界=“----=_Part_23_6341950.1286312374228”

我从 Java 代码中获得的 Content-Type 如下:

内容类型:多部分/相关;类型=“文本/xml”;边界=“----=_Part_23_6341950.1286312374228”

即使在根元素上设置了内容 ID,也没有开始=。工作和失败的 SOAP 消息在其他方面几乎相同。如何生成开始标记,或者服务器看不到附件的其他原因是什么?

谢谢

        SOAPMessage soapMessage = 
MessageFactory.newInstance().createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
SOAPBody body = soapEnvelope.getBody();
SOAPHeader header = soapMessage.getSOAPHeader();

soapPart.setContentId("<rootpart@here.com>");

MimeHeaders mimeHeaders = soapMessage.getMimeHeaders();
mimeHeaders.addHeader("SOAPAction", "addDocument");
mimeHeaders.addHeader("Accept-Encoding", "gzip,deflate");

Name bodyName = soapEnvelope.createName("Document", "doc",
"http://ns/Document");
SOAPBodyElement document = body.addBodyElement(bodyName);

Name filenameName = soapEnvelope.createName("Filename", "doc",
"http://ns/Document");

SOAPElement filename = document.addChildElement(filenameName);
filename.setValue("filename.txt");

AttachmentPart attachment = soapMessage.createAttachmentPart();
attachment.setContent("Some text", "application/octet-stream");
attachment.setMimeHeader("Content-Transfer-Encoding", "binary");

soapMessage.addAttachmentPart(attachment);

SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = scf.createConnection();
URL url = new URL("http://host/Service");

SOAPMessage reply = soapConnection.call(soapMessage, url);

最佳答案

这对我有用:

soapMessage.getMimeHeaders().setHeader("Content-Type", 
soapMessage.getMimeHeaders().getHeader("Content-Type")[0]+
"; start=\"<rootpart@here.com>\"");

关于java - Java SOAP 客户端中缺少 Content-Type "start="标记,服务器未找到附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com