我正在尝试向服务器发送Soap请求。
这是我的java代码:
try {
String xmldata = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns1=\"http://www.telenet.be/TelemeterService/\">\n" +
" <SOAP-ENV:Body>\n" +
" <ns1:RetrieveUsageRequest>\n" +
" <UserId>test</UserId>\n" +
" <Password>test</Password>\n" +
" </ns1:RetrieveUsageRequest>\n" +
" </SOAP-ENV:Body>\n" +
"</SOAP-ENV:Envelope>";
URL myurl = new URL("https://t4t.services.telenet.be/TelemeterService?wsdl");
HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(xmldata.length()));
con.setRequestProperty("Content-Type", "text/xml; charset=\\\"utf-8\\\"\\r\\n");
con.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36");
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(xmldata);
output.close();
DataInputStream input = new DataInputStream(con.getInputStream());
for (int c = input.read(); c != -1; c = input.read())
System.out.print((char) c);
input.close();
System.out.println("Resp Code:" + con.getResponseCode());
System.out.println("Resp Message:" + con.getResponseMessage());
}
catch (IOException se)
{
se.printStackTrace();
}
我得到例外:
java.io.IOException: Server returned HTTP response code: 500 for URL: https://t4t.services.telenet.be/TelemeterService?wsdl
我没有看到我的请求有什么问题。
答案 0 :(得分:0)
网址末尾的?wsdl 用于获取wsdl,例如在浏览器中。尝试删除它,使端点网址 https://t4t.services.telenet.be/TelemeterService 。
答案 1 :(得分:0)
当我收到内部服务器错误时,我做的第一件事(也许你做的)是检查应用程序服务器日志。由于某些意外原因,无法访问服务器。 我没有看到任何问题让wsdl首先检查您是否可以使用Web服务。这是我一直在做的一种方法。