Java调用webservice实现电话归属地查询为例

很多时候我们需要的数据来着webservice接口,那么如何对接接口呢?

其实很简单的功能就实现了

 代码如下 复制代码

package com.air.controller;
import java.util.Vector;
 
import javax.servlet.http.HttpServletRequest;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
 
@Controller
@RequestMapping()
public class GetCountryCityByIp {
    // 提供IP地址搜索WEB服务的URL
    private String url = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"; // 在浏览器中打开url,可以找到
    // private String soapAction="http://WebXml.com.cn/getCountryCityByIp"
    private String namespace = "http://WebXml.com.cn/";// targetNamespace
    private String actionURI = "getMobileCodeInfo"; // Action路径
    private String op = "getMobileCodeInfo"; // 要调用的方法名
 
    
    @RequestMapping("/cityip.html")
    public String GetCountryCityByIp(HttpServletRequest request) {
        Service service = new Service();
        try {
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(url));
            call.setUseSOAPAction(true);
            // action uri
            call.setSOAPActionURI(namespace + actionURI);
            // 设置要调用哪个方法
            call.setOperationName(new QName(namespace, op));
            // 设置参数名称,具体参照从浏览器中看到的
            call.addParameter(new QName(namespace, "mobileCode"),
                    XMLType.XSD_STRING, ParameterMode.IN); // 要返回的数据类型
            call.setReturnType(new QName(namespace, op), String.class); // 入参:对应theIpAddress
            Object[] params = new Object[]{"18035147802"}; // 调用方法并传递参数
            String v = (String) call.invoke(params);
            request.setAttribute("aaa", v);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        
        return "test";
    }
}

这个是相对比较简单的了就是把手机号传过去,然后由对方网站返回相关的json 或者xml数据,然后我们就知道相关信息了。

时间: 2024-08-01 16:45:53

Java调用webservice实现电话归属地查询为例的相关文章

我的Android进阶之旅------>Android通过调用Webservice实现手机号码归属地查询

此app的实现功能如图所示:   注:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx是本文webservice的提供商 具体的用法见:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo   以下是 SOAP 1.2 请求和响应示例.所显示的占位符需替换为实际值.   POST /WebServices/Mob

webservice接口-我要用java调用WebService (被调用的是一个短信接口下面给详细说明)

问题描述 我要用java调用WebService (被调用的是一个短信接口下面给详细说明) 我要用java调用WebService (被调用的是一个短信接口下面给详细说明)希望能按照这个 那边给我的文档:接口原型:sendMessage ();接口路径:http://58.53.194.80/swdx/services/APService?wsdl[参数说明]:参数名称 数据类型 说明ApName String SP帐号ApPassword String SP密码compcode String

java调用webservice接口发送xml报文

问题描述 java调用webservice接口发送xml报文 1.webservice接口是axis1发布的 2.请求报文格式如下 <?xml version="1.0" encoding="gbk"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XM

java 调用 webservice接口传参出现错误java.lang.linkageerror.

问题描述 java 调用 webservice接口传参出现错误java.lang.linkageerror. when resolving method "org.apache.axis.client.Call.addParameter(Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;Ljavax/xml/rpc/ParameterMode;)V" the class loader (instance of org/eclip

java调用webservice:php调用java webservice

header("content-type: text/html; charset=utf-8");require_once("lib/nusoap.php");// 要访问的webservice路径$nusoapwsdl="http://localhost:8080/mywebservice/services/sendmobliemsg?wsdl";// 生成客户端对象$client = new soapclient($nusoapwsdl, t

Java调用Webservice数组参数传递有问题

问题描述 String[] arr = new String[2];arr[0]="abc";arr[1]="def";String str="myteststr";Client client = new Client(new URL("http://xx.xx.xx.xx:9084/eee/infoService?wsdl"));Object[] results = client.invoke("getStuden

java调用webservice接口

问题描述 publicstaticvoidmain(String[]args){Stringid="123";Stringpassword="123";StringserviceEpr="http://192.168.0.8:8081/Seed/services/Sperson?wsdl";Stringrest=callWebServiceByAixs(id,password,serviceEpr);System.out.println(rest

java调用webservice问题 我在用客户端调用axis2发布的webservice时候老是出错

问题描述 在使用客户端调用axis2的webservice时候老是报出这个错误,具体操作是向sqlserver数据库中插入数据,具体错误如下:Exceptioninthread"main"org.apache.axis2.AxisFault:ExceptionoccurredwhiletryingtoinvokeservicemethodMobile_ActionBussinessatorg.apache.axis2.util.Utils.getInboundFaultFromMess

急问java调用webService问题

问题描述 Serviceservice=newService();Callcall=(Call)service.createCall();call.setTargetEndpointAddress(newjava.net.URL("http://10.35.219.253:8081/SHSD.CS/Carinfo"));call.setOperationName(newQName("http://10.35.219.253:8081/SHSD.CS/Carinfo"