通过xml形式请求webService

wsdl地址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl


 
  
//soap请求体
POST /WebServices/WeatherWS.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getWeather"



  
    
      string
      string
    
  
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

//soap响应体


  
    
      
        string
        string
      
    
  
 
  

创建jiava项目

java类

public class Demo { /**       * 访问服务       * @param wsdl wsdl地址       * @param ns 命名空间       * @param method 方法名       * @param params 参数       * @return       * @throws Exception       */   public static void main(String[] args) {     //String wsdl,String ns,String method,Map params,String result     String wsdl="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";//wsdl地址          int time = 30000;//设置请求超时时间                  HttpClient client = new HttpClient();         PostMethod postMethod = new PostMethod(wsdl);         //设置请求连接超时时间         client.getHttpConnectionManager().getParams().setConnectionTimeout(time*3);         //设置读取时间超时         client.getHttpConnectionManager().getParams().setSoTimeout(3*time);         //拼接SOAP           StringBuffer soapRequestData = new StringBuffer("");           soapRequestData.append("");         soapRequestData.append("");         soapRequestData.append(" ");         soapRequestData.append("宁波");         soapRequestData.append("");         soapRequestData.append(" ");         soapRequestData.append(" ");         soapRequestData.append("");          try { // 然后把Soap请求数据添加到PostMethod中   RequestEntity requestEntity = new StringRequestEntity(soapRequestData.toString(), "text/xml", "UTF-8"); postMethod.setRequestEntity(requestEntity); System.out.println(soapRequestData.toString()); int status =  client.executeMethod(postMethod); System.out.println("status:"+status);  //获得响应体输入流      InputStream response= postMethod.getResponseBodyAsStream();      String resp = IOUtils.toString(response,"UTF-8");      System.out.println(resp); } catch (Exception e) { e.printStackTrace(); }     }            }

响应 结果
 宁波  
status:200
浙江 宁波宁波21062016/11/13 15:36:11今日天气实况:气温:22℃;风向/风力:东南风 2级;湿度:81%紫外线强度:最弱。空气质量:良。紫外线指数:最弱,辐射弱,涂擦SPF8-12防晒护肤品。
感冒指数:少发,无明显降温,感冒机率较低。
穿衣指数:较舒适,建议穿薄外套或牛仔裤等服装。
洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。
运动指数:较不宜,有降水,推荐您在室内进行休闲运动。
空气污染指数:良,气象条件有利于空气污染物扩散。
11月13日 小雨转阴16℃/21℃东南风转南风微风7.gif2.gif11月14日 小雨15℃/21℃北风微风转东北风3-4级7.gif7.gif11月15日 小雨转阴13℃/18℃东北风3-4级7.gif2.gif11月16日 多云转阴15℃/20℃东北风转东风微风1.gif2.gif11月17日 多云15℃/21℃东风转东南风微风1.gif1.gif
 需要的架包 
  

commons-codec-1.9.jar
commons-httpclient-3.1.jar
commons-io-2.2.jar
commons-logging-1.2.jar


你可能感兴趣的:(学习)