我在Java代码中调用的其他服务器上有一个web服务。它只响应POST方法(没有GET方法)可用。当我使用请求XML实现完整方法并调用Webservice时,此请求/响应正常工作,即它正常工作。
但要求是 - >将有三个Web服务URL(可由管理员用户的我的应用程序配置)。首先,我必须检查第一个URL是否是连接。如果没有连接,则进行第二次连接......然后进行第三次连接。
我正在使用以下代码,但一次又一次地给了我
{responseCode = 500} 。 并不是 {responseCode = 200} 。
请建议我如何检查连接是否已建立?
/* Start : Surajit Biswas (25-NOV-2015) : test if Alcatel WS is connection or not*/
String wsURL = "https://hostservername:postnumber";
String wsUserName = "someUserName";
String wsPassword = "somePassword";
String requestXML = "<soapenv:Envelope ...."; /* As I told, not required here*/
try{
String authString = wsUserName+":"+wsPassword;
byte[] byteAuthStr = authString.getBytes();
String authBase64Str = Base64.encode(byteAuthStr);
System.out.println(authBase64Str);
URL url = new URL(wsURL);
URLConnection conn = url.openConnection();
HttpURLConnection connection = (HttpURLConnection)conn;
connection.setDoOutput(true);
/*connection.setRequestMethod("GET");
connection.setRequestMethod("POST");*/ connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
connection.setRequestProperty("Authorization", "Basic "+authBase64Str);
connection.connect();
System.out.println( connection.getResponseCode());
boolean connected = false;
switch (connection.getResponseCode()) {
case HttpURLConnection.HTTP_OK:
System.out.println(url + " **OK**");
connected = true;
break; // fine, go on
case HttpURLConnection.HTTP_GATEWAY_TIMEOUT:
System.out.println(url + " **gateway timeout**");
break;// retry
case HttpURLConnection.HTTP_UNAVAILABLE:
System.out.println(url + "**unavailable**");
break;// retry, server is unstable
default:
System.out.println(url + " **unknown response code**.");
break ; // abort
}
}catch(Exception ex){
System.err.println("Error creating HTTP connection");
System.out.println(ex.getMessage());
}
}
/* End : Surajit Biswas (25-NOV-2015) : test if Alcatel WS is connection or not*/
先谢谢你的帮助...... Surajit Biswas
答案 0 :(得分:3)
实现您的要求的方法只是尝试依次发布到每个网址,并在您获得成功后立即停止。
你在这里尝试的东西等于试图预测未来。它不会起作用。它无法工作。
答案 1 :(得分:-1)
您可以查看此行
URLConnection conn = url.openConnection();
if(conn != null)
{
//do your stuff
}
else //call other url