• 两种方式实现公网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;
    	}
    }
    

      

  • 相关阅读:
    flink(七) 电商用户行为分析(七)订单支付实时监控之订单超时、订单交易匹配
    flink(六) 电商用户行为分析(六)恶意登录监控之连续登陆超时
    flink(五) 电商用户行为分析(五)市场营销商业指标统计分析之市场推广统计、广告点击量统计、 黑名单过滤
    flink(四) 电商用户行为分析(四)实时流量统计(二)网站独立访客数(UV)
    flink(三) 电商用户行为分析(三)实时流量统计(一)热门页面浏览量、网站总浏览量
    flink(二) 电商用户行为分析(二)实时热门商品统计(计算最热门 Top N 商品)
    flink(一) 电商用户行为分析(一)项目整体介绍
    Cause: No supported Ethernet device found + Unknown symbol in module
    vfio_enable_intx
    dpdk disable 收发 interrupt + l3fwd-power
  • 原文地址:https://www.cnblogs.com/HCT118/p/6495228.html
Copyright © 2020-2023  润新知