获取请求报文和响应报文
axis1.4使用wsdl生成代码客户端后,使用Call的方式调用webservice服务时,若需要获取请求报文和响应报文,可使用如下方式获取:
MessageContext msgCxt = api._getCall().getMessageContext();
//请求报文
String requestStr = msgCxt.getRequestMessage().getSOAPPartAsString();
//响应报文
String responseStr = msgCxt.getResponseMessage().getSOAPPartAsString();
//若获取到响应报文为空,可尝试如下方式获取:
//api._getCall().getResponseMessage().getSOAPPartAsString();
示例
以调用qq检查在线状态的公开webservice为例:
public static void main(String[] args) throws ServiceException, RemoteException {
String endPoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
QqOnlineWebServiceLocator service = new QqOnlineWebServiceLocator();
service.setqqOnlineWebServiceSoapEndpointAddress(endPoint);
QqOnlineWebServiceSoapStub api = (QqOnlineWebServiceSoapStub) service.getqqOnlineWebServiceSoap();
String response = api.qqCheckOnline("1149376120");
MessageContext msgCxt = api._getCall().getMessageContext();
//请求报文
String requestStr = msgCxt.getRequestMessage().getSOAPPartAsString();
//响应报文
String responseStr = msgCxt.getResponseMessage().getSOAPPartAsString();
System.out.println("请求报文:");
System.out.println(requestStr);
System.out.println("++++++++++++++++++++++");
System.out.println("响应报文:");
System.out.println(responseStr);
}
输出结果:
需要的jar包:
axis.jar
commons-discovery-0.2.jar
commons-io-2.4.jar
commons-logging.jar
jaxrpc.jar
saaj.jar
wsdl4j.jar
下载地址:
https://download.csdn.net/download/wangbailin2009/10906719