httpclient 调用webservice
来源:互联网 发布:阿里云服务器闪退 编辑:程序博客网 时间:2024/05/22 16:01
使用HttpClient对Web Service调用
用到的jar包有:
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.0.4.jar
具体流程大致这样:
String soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" + "<soap12:Body>" + " <qqCheckOnline xmlns=\"http://WebXml.com.cn/\">" + " <qqCode>349104641</qqCode>" + " </qqCheckOnline>" + " </soap12:Body>" + "</soap12:Envelope>"; System.out.println(soapRequestData); //PostMethod postMethod = new PostMethod("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"); PostMethod postMethod = new PostMethod("http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"); // 然后把Soap请求数据添加到PostMethod中 byte[] b = soapRequestData.getBytes("utf-8"); InputStream is = new ByteArrayInputStream(b,0,b.length); RequestEntity re = new InputStreamRequestEntity(is,b.length,"application/soap+xml; charset=utf-8"); postMethod.setRequestEntity(re); //最后生成一个HttpClient对象,并发出postMethod请求 HttpClient httpClient = new HttpClient(); int statusCode = httpClient.executeMethod(postMethod); String soapResponseData = postMethod.getResponseBodyAsString(); System.out.print(soapResponseData);
动态构造调用串的话如下实现:
private String tns; private String methodName; private String wsdlLocation; private String soapResponseData; private int invoke(Map<String, String> patameterMap) throws Exception { PostMethod postMethod = new PostMethod(wsdlLocation); String soapRequestData = buildRequestData(patameterMap); byte[] bytes = soapRequestData.getBytes("utf-8"); InputStream inputStream = new ByteArrayInputStream(bytes, 0, bytes.length); RequestEntity requestEntity = new InputStreamRequestEntity(inputStream, bytes.length, "application/soap+xml; charset=utf-8"); postMethod.setRequestEntity(requestEntity); HttpClient httpClient = new HttpClient(); int statusCode = httpClient.executeMethod(postMethod); soapResponseData = postMethod.getResponseBodyAsString(); return statusCode; } private String buildRequestData(Map<String, String> patameterMap) { StringBuffer soapRequestData = new StringBuffer(); soapRequestData.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); soapRequestData .append("<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"); soapRequestData.append("<soap12:Body>"); soapRequestData.append("<" + methodName + " xmlns=\"" + tns + "\">"); Set<String> nameSet = patameterMap.keySet(); for (String name : nameSet) { soapRequestData.append("<" + name + ">" + patameterMap.get(name) + "</" + name + ">"); } soapRequestData.append("</" + methodName + ">"); soapRequestData.append("</soap12:Body>"); soapRequestData.append("</soap12:Envelope>"); return soapRequestData.toString(); }
- HttpClient-调用webservice客户端
- httpclient 调用webservice
- 通过HttpClient调用webservice
- HttpClient-调用webservice客户端
- 通过httpclient调用webservice
- Httpclient远程调用WebService示例(Eclipse+httpclient
- cxf Webservice 使用httpClient 调用
- 使用HttpClient调用CFX WebService
- WebService客户端——HttpClient调用WebService
- (六) WebService-- HttpClient 调用WS服务
- restful风格webservice HttpClient方式调用
- java httpclient作为客户端调用webservice
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- httpclient妙用一 httpclient作为客户端调用webservice
- CXF生成webservice服务端,httpclient客户端调用webservice服务端
- HttpClient 发送post和get请求 调用第三方webservice
- 矩形面积和矩形周长并的模板——来自notonlysuccess
- 明年的七夕,你还记得我吗
- canvas
- 基于管道的popen和pclose函数
- 三大控件之————JTree
- httpclient 调用webservice
- ios设置导航条背景图片
- 20121010
- open与fopen的区别
- xml schema
- xml-schema约束
- 关于js中用el表达式获取值的小问题
- 企业信息化IT架构方法
- 爱 不说再见