访问公网WebService服务

访问公网WebService服务

  接下来,我们演示如何访问公网webservice服务。

  我们以访问 http://www.webxml.com.cn/zh_cn/index.aspx 为例,主要演示手机号码归属地查询服务(使用说明书路径为 http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL)。接着,生成相应的webservice客户端,以及jar包。

  gen-c-s.bat(生成webservice服务的客户端):

wsimport -s E:\webService\1\source -d E:\webService\1\classes http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL

  gen-jar.bat(生成项目依赖的jar包):

e:
cd E:\webService\1\classes
jar cvf phoneCode.jar cn

  然后,创建一个web案例,添加生成的 phoneCode.jar包为项目依赖。

<%--前端页面--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>号码归属地查询</title>
    <script language="JavaScript" src="jquery.min.1.11.3.js"></script>
    <script language="JavaScript">
        var num = 1;
        function doQuery() {
            var phoneCode = $('#phoneCode').val();
            console.log(phoneCode);
            if (phoneCode.length == 11) {
                if (num == 1) {
                    num = 0;
                    console.log('发起请求归属地查询:' + phoneCode);
                    $.ajax({
                        url: '/QueryServlet',
                        type: 'POST', //GET
                        async: true,    //或false,是否异步
                        data: {
                            phoneCode: phoneCode
                        },
                        timeout: 10000,    //超时时间
                        dataType: 'json',
                        success: function (data, textStatus, jqXHR) {
                            num = 1;
                            console.log("success--->" + phoneCode + ":" + data.resultPhone);
                            $('#pResult').css({"color": "blue", "font-size": "16px", "font-weight": "bold"});
                            $('#pResult').text(phoneCode + ":" + data.resultPhone);
                        },
                        error: function (xhr, textStatus) {
                            num = 1;
                            console.log("error--->");
                        }
                    });
                }
            }
        }
    </script>
</head>
<body>
<form>
    <input id="phoneCode" type="text" name="phoneCode" placeholder="请填写要充值电话号码" οnkeyup="doQuery()">
    <p id="pResult"></p>
</form>
</body>
</html>
-----------------------------------------------
//后端控制器
package com.itszt;

import cn.com.webxml.MobileCodeWS;
import cn.com.webxml.MobileCodeWSSoap;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 处理前端发来的请求,并给前端响应数据
 */
@WebServlet(name = "QueryServlet", urlPatterns = "/QueryServlet")
public class QueryServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //接收前端发来的参数
        String phoneCode = request.getParameter("phoneCode");
        //创建服务视图
        MobileCodeWS mobileCodeWS = new MobileCodeWS();
        //根据服务视图得到服务端点
        MobileCodeWSSoap mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();
        //调用服务端点的方法
        String mobileCodeInfo = mobileCodeWSSoap.getMobileCodeInfo(phoneCode, "");
        System.out.println("mobileCodeInfo = " + mobileCodeInfo);
        if (mobileCodeInfo != null) {
            if (mobileCodeInfo.contains(":")) {
                String[] split = mobileCodeInfo.split(":");
                response.setCharacterEncoding("UTF-8");
                response.getWriter().write("{\"resultPhone\":\"" + split[1] + "\"}");
            } else {
                System.out.println("解析失败");
            }
        } else {
            System.out.println("解析失败");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

  项目运行后,前端反馈如下:

posted @ 2018-04-04 11:09 奔跑在梦想的道路上 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值