zoukankan      html  css  js  c++  java
  • 两种方式实现公网webservice的调用

    第一种方式:

    使用wsimport -p cn.hct.mobile -s . http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 生产客户端代码

    编写代码调用:

     

    package com.hct.webservice;
    
    /**
     * @作者: HCT
     * @时间:2017年3月3日上午10:41:59
     * @描述:
     *
     */
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import javax.xml.namespace.QName;
    import javax.xml.ws.Service;
    
    import cn.hct.mobile.MobileCodeWSSoap;
    
    public class ServiceQuery {
    	
    		public static void main(String[] args) throws IOException {
    			//创建WSDL的URL,注意不是服务地址
    			URL url = new URL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl");
    			
    			//创建服务名称
    			//1.namespaceURI - 命名空间地址
    			//2.localPart - 服务视图名
    			QName qname = new QName("http://WebXml.com.cn/", "MobileCodeWS");
    			
    			//创建服务视图
    			//参数解释:
    			//1.wsdlDocumentLocation - wsdl地址
    			//2.serviceName - 服务名称
    			Service service = Service.create(url, qname);
    			//获取服务实现类
    			MobileCodeWSSoap mobileCodeWSSoap = service.getPort(MobileCodeWSSoap.class);
    			//调用查询方法
    			String result = mobileCodeWSSoap.getMobileCodeInfo("18221137382", "");
    			System.out.println(result);
    		}
    	
    
    }
    

      

    第二中方式:

    使用HttpURLConnection方式调用

    package com.hct.webservice;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class UrlHttp {
    
    	public static void main(String[] args) throws IOException {
    		//第一步:创建服务地址,不是WSDL地址
    		URL url = new URL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx");
    		//第二步:打开一个通向服务地址的连接
    		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    		//第三步:设置参数
    		//3.1发送方式设置:POST必须大写
    		connection.setRequestMethod("POST");
    		//3.2设置数据格式:content-type
    		connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
    		//3.3设置输入输出,因为默认新创建的connection没有读写权限,
    		connection.setDoInput(true);
    		connection.setDoOutput(true);
    
    		//第四步:组织SOAP数据,发送请求
    		String soapXML = getXML("18221137382");
    		OutputStream os = connection.getOutputStream();
    		os.write(soapXML.getBytes());
    		//第五步:接收服务端响应,打印
    		int responseCode = connection.getResponseCode();
    		if(200 == responseCode){//表示服务端响应成功
    			InputStream is = connection.getInputStream();
    			InputStreamReader isr = new InputStreamReader(is);
    			BufferedReader br = new BufferedReader(isr);
    			
    			StringBuilder sb = new StringBuilder();
    			String temp = null;
    			while(null != (temp = br.readLine())){
    				sb.append(temp);
    			}
    			System.out.println(sb.toString());
    			
    			is.close();
    			isr.close();
    			br.close();
    		}
    
    		os.close();
    	}
    	public static String getXML(String phoneNum){
    		String soapXML = "<?xml version="1.0" encoding="utf-8"?>"
    		+"<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">"
    			+"<soap:Body>"
    		    +"<getMobileCodeInfo xmlns="http://WebXml.com.cn/">"
    		    	+"<mobileCode>"+phoneNum+"</mobileCode>"
    		      +"<userID></userID>"
    		    +"</getMobileCodeInfo>"
    		  +"</soap:Body>"
    		+"</soap:Envelope>";
    		return soapXML;
    	}
    }
    

      

  • 相关阅读:
    【Javascript】javascript学习 二十二 JavaScript 对象简介
    【Javascript】javascript学习 二十六 JavaScript Boolean(逻辑)对象
    【Javascript】javascript学习 二十九 JavaScript HTML DOM 对象
    【Javascript】javascript学习 二十八 JavaScript RegExp 对象
    【Javascript】javascript学习 二十一 JavaScript 指导方针
    【Javascript】javascript学习 二十三 JavaScript 字符串(String)对象
    【Javascript】javascript学习 三十 JavaScript 浏览器检测
    【Javascript】javascript学习 二十五 JavaScript Array(数组)对象
    【Javascript】javascript学习 二十四 JavaScript Date(日期)对象
    【Javascript】javascript学习 二十七 JavaScript Math(算数)对象
  • 原文地址:https://www.cnblogs.com/HCT118/p/6495228.html
Copyright © 2011-2022 走看看