当前位置:网站首页 > Java教程 > 正文

java soap webservice教程



package hanwl.TestDemo; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.io.IOUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.xml.sax.InputSource; public class TestWebservice2 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String wsdl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"; int timeout = 1000; StringBuffer sb = new StringBuffer(""); sb.append("<?xml version="1.0" encoding="UTF-8"?>"); sb.append("<soapenv:Envelope " + " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " + " xmlns:q0='http://WebXml.com.cn/' " + " xmlns:xsd='http://www.w3.org/2001/XMLSchema' " + " xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' >"); sb.append("<soapenv:Body>"); sb.append("<q0:getWeatherbyCityName>"); sb.append("<q0:theCityName>唐山</q0:theCityName> "); sb.append("</q0:getWeatherbyCityName>"); sb.append("</soapenv:Body>"); sb.append("</soapenv:Envelope>"); // HttpClient发送SOAP请求 System.out.println("HttpClient 发送SOAP请求"); HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod(wsdl); // 设置连接超时  client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout); // 设置读取时间超时  client.getHttpConnectionManager().getParams().setSoTimeout(timeout); // 然后把Soap请求数据添加到PostMethod中 RequestEntity requestEntity = new StringRequestEntity(sb.toString(), "text/xml", "UTF-8"); //设置请求头部,否则可能会报 “no SOAPAction header” 的错误 //postMethod.setRequestHeader("SOAPAction",""); // 设置请求体  postMethod.setRequestEntity(requestEntity); int status = client.executeMethod(postMethod); // 打印请求状态码 System.out.println("status:" + status); // 获取响应体输入流 InputStream is = postMethod.getResponseBodyAsStream(); // 获取请求结果字符串 String result = IOUtils.toString(is); Document dc = strXmlToDocument(result); // Element root = dc.getRootElement(); // System.out.println(root.getName()); // System.out.println("result: " + result);  } public static Document strXmlToDocument(String parseStrXml){ Document document = null; try { document = DocumentHelper.parseText(parseStrXml); Element root = document.getRootElement(); List<Element> list = root.elements(); getElement(list); } catch (DocumentException e) { e.printStackTrace(); } return document; } private static void getElement(List<Element> sonElemetList) { // Map<String,String> map = new HashMap<String, String>(); for (Element sonElement : sonElemetList) { if (sonElement.elements().size() != 0) { System.out.println(sonElement.getName() + ":"); getElement(sonElement.elements()); }else{ System.out.println(sonElement.getName() + ":"+ sonElement.getText()); } } } }

  • 上一篇: java必学教程
  • 下一篇: java教程163
  • 版权声明


    相关文章:

  • java必学教程2025-01-10 18:26:02
  • solr java 安装教程2025-01-10 18:26:02
  • java分库教程2025-01-10 18:26:02
  • java教程之io流2025-01-10 18:26:02
  • java伺服器创建教程2025-01-10 18:26:02
  • java教程1632025-01-10 18:26:02
  • java程序设计教程 雍俊海 答案2025-01-10 18:26:02
  • java项目包制作教程2025-01-10 18:26:02
  • java教程epub2025-01-10 18:26:02
  • java中awt教程2025-01-10 18:26:02