gpt4 book ai didi

java - 无法查看 SOAP 调用中的回复

转载 作者:行者123 更新时间:2023-12-02 06:16:48 25 4
gpt4 key购买 nike

我目前正在对超出我控制范围的特定域进行自定义 SOAP 调用。我知道 SOAP 调用失败,但我似乎无法获取返回的(错误)值。

现在我正在使用下面的代码:

                    Document document = convertStringToDocument(this.MeldingString);
// System.out.println(document);
SOAPConnectionFactory myFct = SOAPConnectionFactory.newInstance();
MessageFactory myMsgFct = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
SOAPMessage message = myMsgFct.createMessage();
SOAPConnection myCon = myFct.createConnection();

// Adding parts
SOAPPart mySPart = message.getSOAPPart();
SOAPEnvelope myEnvp = mySPart.getEnvelope();

// Escape the password for usage in header
String escpwd = StringEscapeUtils.escapeJava(this.Password);

// Header
MimeHeaders headers = message.getMimeHeaders();
headers.setHeader("Content-Type", "application/soap+xml;charset=UTF-8");
headers.setHeader("Authorization", this.Username + ":" + escpwd);

// Body
SOAPBody body = myEnvp.getBody();
body.addDocument(document);

// Sending
Core.getLogger("GetResultSOAPmsg").trace("Started");
URL endPt = new URL(
"URL-TO-MY-SERVICE");
System.setProperty("java.net.useSystemProxies", "true");
try {
SOAPMessage reply = myCon.call(message, endPt); "UTF-8");

}
catch(Exception e)
{
e.printStackTrace();
}

这会产生以下错误,这在整个 SO 中都很常见:

SEVERE: SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message
com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?

现在我已经阅读了大部分主题,它们解释了这个问题通常是如何解决的(命名空间、转义 URL 等),但我似乎无法弄清楚我的情况出了什么问题。这是一项私有(private)服务,很遗憾,在这种情况下对方无法为我提供帮助。该错误可能是任何错误,从错误的证书到拼写错误的 URL。

因此,我想在屏幕上实际看到调用电话时收到的实际回复是什么。这会对我有所帮助(假设它是 503、404 或其他页面)。无论我做什么以及在哪里设置断点,Reply 上都没有任何信息。这是有道理的,因为它无法创建所述对象,但整个消息似乎被丢弃。

在我的调用被丢弃之前,我可以通过什么方式查看对我的调用的实际回复是什么?

最佳答案

我认为您的 header 有问题

headers.setHeader("Content-Type", "application/soap+xml;charset=UTF-8");

尝试类似的事情

headers.setHeader("Content-Type", "application/xml;charset=UTF-8");

headers.setHeader("Content-Type", "application/json;charset=UTF-8");

取决于服务接受的内容类型

关于java - 无法查看 SOAP 调用中的回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55867914/

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