java通过http协议模拟soupui调用webservice接口。

java代码如下:

//此responseXml是调用返回的字符串,传入所调用的webservice所需要的参数。

responseXml = getResponseAlarmTerminal(

            askWork.getAlarmid(),
            askWork.getOcname());



public String getResponseAlarmTerminal(String alarmId,String ocName)
  {

//这是你所调用接口的地址,注意后面不要加上?wsdl
    String url = "http://133.37.234.33:8008/AlarmTerminal/AlarmTerminal";
String body = WebServiceUtil.getReqbodyAlarmTerminal(alarmId, ocName);
String responseXml = "";
try
{
responseXml = WebServiceUtil.httpReqResp(url, body);

catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

//返回响应的字符串
//System.out.println("\n\n=== 调用返回结果 responseXML :\n" + responseXml);
return responseXml;
 

  }



//如上的String body = WebServiceUtil.getReqbodyAlarmTerminal(alarmId, ocName);

//此方法是一个类静态调用的拼接字符串的方法

//注意方法名。

//这是参数 。对应的节点名称也要改变。

public static String getReqbodyAlarmTerminal(String alarmId, String ocName)
{
String body = "";
body = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:alar=\"com.ffcs.oss.service/AlarmTerminal\">"
+ "<soapenv:Header/>"
+ "<soapenv:Body>"
+ "<alar:terminalAlarm>"
+ "<alar:ocname>"
+ ocName
+ "</alar:ocname>"
+ "<alar:alarmid>"
+ alarmId
+ "</alar:alarmid>"
+ "</alar:terminalAlarm>"
+ "</soapenv:Body>" + "</soapenv:Envelope>";


return body;
}

//调用的http协议的方法

public static String httpReqResp(String url, String body)
throws IOException
{


StringBuffer response = new StringBuffer();
HttpClient client = new HttpClient();


client.getHttpConnectionManager().getParams().setConnectionTimeout(20000);
client.getHttpConnectionManager().getParams().setSoTimeout(20000);


client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");
PostMethod method = new PostMethod(url);
method.setRequestHeader("Content-Type", "text/xml");
method.setRequestHeader("Connection", "close");  


method.setRequestBody(body);


// NameValuePair[] nameValuePair = {new NameValuePair("postData",
// body)};
// method.setRequestBody(nameValuePair);


String rsp = "";


try
{
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK)
{
// System.out.println("111 is " +
// method.getResponseBodyAsString());
rsp = method.getResponseBodyAsString();

else
{
rsp="";
System.out.println("访问出错:HttpStatus is "
+ method.getStatusCode() + ",and text is "
+ method.getStatusText());
}
}
catch (IOException e)
{
rsp="";
e.printStackTrace();

finally
{
// rsp=method.getResponseBodyAsString();
method.releaseConnection();
}


return rsp;
}



猜你喜欢

转载自blog.csdn.net/greensomnuss/article/details/79308556