对于webService接口的请求方式wsdl

最近对接接口,直接给了一个接口地址,是以?wsdl结尾结束,看着有些懵,开始只是用原来的请求接口的方式试了一下,很不幸,都不能访问通,后来才知道原来这样的接口形式是webService形式的接口,通过给出的地址可以查看相应的方法和参数,例如:

http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl---这是查询号码归属地的地址,可以拿来结合实际记录一下。

以上就是这个地址展示出来的信息,这里不记录具体是什么意思了,可以自行百度一下, 比较好理解,上面标注的红框内基本就是要用的信息,方法名和参数等。

关键就是怎么拿这些信息进行请求该方法,这就需要自己写请求端:

String endpoint = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl";
        String res = null;
        // 查询电话号码的接口方法名
        String operationName = "getMobileCodeInfo";
        // 定义service对象
        Service service = new Service();
        // 创建一个call对象
        Call call = (Call) service.createCall();
        // 设置目标地址,即webservice路径
        call.setTargetEndpointAddress(endpoint);
        // 设置操作名称,即方法名称   http://WebXml.com.cn/
        call.setOperationName(new QName("http://WebXml.com.cn/",operationName));
        // 设置方法参数1
        call.addParameter( new QName("http://WebXml.com.cn/","mobileCode"),
                XMLType.XSD_INT,
                javax.xml.rpc.ParameterMode.IN);
        call.addParameter( new QName("http://WebXml.com.cn/","userID"),
                org.apache.axis.encoding.XMLType.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);

        // 设置方法参数2
        call.addParameter("mobileCode",XMLType.XSD_INT, ParameterMode.IN);
        call.addParameter("userID", Constants.XSD_INTEGER, ParameterMode.IN);
        //方式2结束,这种方式在实际使用中,能传参成功

        // 设置返回值类型
        //对于返回是字符串数组的返回类型只有这两种可行

        //call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR);
        call.setReturnClass(java.lang.String.class);

        call.setUseSOAPAction(true);
        call.setSOAPActionURI("http://WebXml.com.cn/"+"getMobileCodeInfo");

        res=(String) call.invoke(new Object[]{mobileCode,userID});

        // 如果返回类型是org.apache.axis.encoding.XMLType.SOAP_VECTOR时用下面的转型接收
        //Vector v=(Vector) call.invoke(new Object[]{cityCode,userId});

        System.out.println(res);

具体使用方式,要根据实际项目情况定。

发布了85 篇原创文章 · 获赞 30 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/BinshaoNo_1/article/details/102662745
今日推荐