码迷,mamicode.com
首页 > Web开发 > 详细

调用已发布的WebService

时间:2017-09-20 00:59:36      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:ice   dvb   vss   cow   ue4   请求   fiori   .post   ldb   

WebService服务演示

  1.          登录http://www.webxml.com.cn

    技术分享

  2.           单击手机查询服务

技术分享

  3.         选择要调用的方法 例如: getMobileCodeInfo.

  4.  输入要查询的手机号单击”调用” 截图如下, 免费用户 UserID为null

技术分享

 

a)   可以看到返回如下结果:

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://WebXml.com.cn/">18323455678:重庆 重庆 重庆移动全球通卡</string>

 

 

  每种访问方式都有对应的说明,方法、参数与对应的返回数据。在点击方法名之后可以查看。一般四种。soap1.1,soap1.2,get,post。一般访问方式  HttpClient

Jar包:

技术分享

1.Java方式访问WebService

(1)get方式:

说明:

技术分享

 

url:  http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo  后面拼接参数

Java代码:

package ws_a;


import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

/**调用第三方的webservice服务 ,获取电话号码信息
 * 
 */
public class MobileCodeService {
    //1. http-get方式访问webservice
    public void get(String mobileCode ,String userID ) throws Exception{
        URL url=new URL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode="+mobileCode+
                "&userID="+userID);
        HttpURLConnection conn=(HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setRequestMethod("GET");
        if(conn.getResponseCode()==HttpURLConnection.HTTP_OK){ //结果码=200
            InputStream is=conn.getInputStream();
            //内存流 ,  
            ByteArrayOutputStream boas=new ByteArrayOutputStream();
            byte[] buffer=new byte[1024];
            int len=-1;
            while((len=is.read(buffer))!=-1){
                boas.write(buffer, 0, len);
            }
            System.out.println("GET请求获取的数据:"+boas.toString());    
            boas.close();
            is.close();
        }
    }
    
    public static void main(String[] args) throws Exception{
        MobileCodeService ws=new MobileCodeService();
        ws.get("15110410513", "");

    }

}

 

结果;

技术分享

 

(2)post方式

说明:

技术分享

 

java代码:

package ws_a;


import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

/**调用第三方的webservice服务 ,获取电话号码信息
 * 
 */
public class MobileCodeService {
    
    //2.Post请求 :通过Http-Client 框架来模拟实现 Http请求
    public void post(String mobileCode ,String userID) throws Exception{
        /**HttpClient访问网络的实现步骤:
         *  1. 准备一个请求客户端:浏览器 
         *  2. 准备请求方式: GET 、POST
         *  3. 设置要传递的参数
         *  4.执行请求
         *  5. 获取结果
         */
        HttpClient client=new HttpClient();
        PostMethod postMethod=new PostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo");
        //3.设置请求参数
        postMethod.setParameter("mobileCode", mobileCode);
        postMethod.setParameter("userID", userID);
        //4.执行请求 ,结果码
        int code=client.executeMethod(postMethod);
        //5. 获取结果
        String result=postMethod.getResponseBodyAsString();
        System.out.println("Post请求的结果:"+result);
    }

    public static void main(String[] args) throws Exception{
        MobileCodeService ws=new MobileCodeService();
        ws.post("13626217879", "");

    }

}

结果:

技术分享

 (3)soap1.1访问

说明:

技术分享

 

java代码:

package ws_a;


import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

/**调用第三方的webservice服务 ,获取电话号码信息
 * 
 */
public class MobileCodeService {

    //2.Post请求 :通过Http-Client 框架来模拟实现 Http请求
    public void soap() throws Exception{

        HttpClient client=new HttpClient();
        PostMethod postMethod=new PostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx");
        //3.设置请求参数
          postMethod.setRequestBody(new FileInputStream("C:\\Users\\liqiang\\Desktop\\soap.xml")); 
          //修改请求的头部
          postMethod.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
        //4.执行请求 ,结果码
        int code=client.executeMethod(postMethod);
        System.out.println("结果码:"+code);
        //5. 获取结果
        String result=postMethod.getResponseBodyAsString();
        System.out.println("Post请求的结果:"+result);
    }

    public static void main(String[] args) throws Exception{
        MobileCodeService ws=new MobileCodeService();
        ws.soap();

    }

}

 

桌面的soap.xml

<?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>13834786998</mobileCode>
      <userID></userID>
    </getMobileCodeInfo>
  </soap:Body>
</soap:Envelope>

 

 

结果:

结果码:200
Post请求的结果:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getMobileCodeInfoResponse xmlns="http://WebXml.com.cn/"><getMobileCodeInfoResult>13834786998:山西 长治 山西移动全球通卡</getMobileCodeInfoResult></getMobileCodeInfoResponse></soap:Body></soap:Envelope>

 

 

     问题:1. 如何解析结果
              2. 如何传递对象参数

 

调用已发布的WebService

标签:ice   dvb   vss   cow   ue4   请求   fiori   .post   ldb   

原文地址:http://www.cnblogs.com/qlqwjy/p/7554647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!