gpt4 book ai didi

Java:SOAP 消息发送失败但在 SOAPUI 中有效

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:08 25 4
gpt4 key购买 nike

我正在创建一个 SOAP 消息,然后尝试使用以下代码发送它。

try {
System.setProperty("http.proxyHost", "proxy.myproxy.com");
System.setProperty("http.proxyPort", "80");
connection = SOAPConnectionFactory.newInstance().createConnection();
response = connection.call(message, "https://www.service.com/call");
connection.close();
} catch (SOAPException e) {
e.printStackTrace();
} catch (UnsupportedOperationException e) {
e.printStackTrace();
}
finally{
System.setProperty("http.proxyHost", "");
System.setProperty("http.proxyPort", "");
}

最后是因为我访问本地域上的url时需要绕过代理。我知道这是一种黑客攻击,并且会对其他解决方案感兴趣。但是,真正的问题涉及超时。每次都会超时,但是,如果我获取 SOAP 消息并使用 SOAPUI(相同的代理设置)发送它,我会得到成功的响应。

Java 代码的响应...

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>java.net.ConnectException: Connection timed out: no further information</faultstring></soapenv:Fault></soapenv:Body></soapenv:Envelope>

最佳答案

我最终使用了这个...

public static String soapHttpRequest(RequestInfo re) {
HttpURLConnection connection = null;
OutputStreamWriter wr = null;
BufferedReader rd = null;
StringBuilder sb = null;
String line = null;

URL serverAddress = null;

System.setProperty("http.proxyHost", "proxy.my.com");
System.setProperty("http.proxyPort", "80");
System.setProperty("https.proxyHost", "proxy.my.com");
System.setProperty("https.proxyPort", "80");

try {
serverAddress = new URL("https://site.com/service/default.asp");
// set up out communications stuff
connection = null;

// Set up the initial connection
connection = (HttpURLConnection) serverAddress.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-type", "text/xml; charset=utf-8");
connection.setRequestProperty("SOAPAction",
"https://site.com/service/default.asp#Method");
OutputStream reqStream = connection.getOutputStream();
reqStream.write(getSoapMessageString(re).getBytes());
connection.connect();


// read the result from the server
rd = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
sb = new StringBuilder();

while ((line = rd.readLine()) != null) {
sb.append(line + '\n');
}
String val = sb.toString();
System.out.println(val);
return val;

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// close the connection, set all objects to null
connection.disconnect();
rd = null;
sb = null;
wr = null;
connection = null;
// Closing to prevent issues with local calls
System.setProperty("http.proxyHost", "");
System.setProperty("http.proxyPort", "");
System.setProperty("https.proxyHost", "");
System.setProperty("https.proxyPort", "");
}
return null;
}

关于Java:SOAP 消息发送失败但在 SOAPUI 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288958/

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