Java 使用Axis调用WebService的示例代码

网友投稿 458 2022-11-19


Java 使用Axis调用WebService的示例代码

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

/**

* @ClassName: TestAxis

* @Description: TODO(描述这个类的作用)

* @author huc

*

*/

public class TestAxis {

public static void main(String []args){

String inConditions = "*公民身份号码姓名110101******李闻100600个人贷款3624221952123***李一闻100600个人贷款1234********王龙100600银行开户110101******100600个人车贷110101******100600230602***100600&ltmMlGM;YWLX>个人车贷";

SmMlGMtring inLicense = "********";

try{

//调用webservice地址

String url = "https://****.com/services/NciicServices";           //如果url地址中有中文参数,要注意应单独将中文部分进行编码操作后再与URL字符串拼接到一起,编码方式为:URLEncoder.encode("中文部分", "utf-8");

//调用方法名

String method="nciicCheck";

Service service = new Service();

//通过service创建call对象

Call call = mMlGM(Call) service.createCall();          //call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); 设置soap12协议方式调用

//设置服务地址

call.setTargetEndpointAddress(new java.net.URL(url));

//设置调用方法

call.setOperationName(method);

call.setUseSOAPAction(trmMlGMue);

//添加方法的参数,有几个添加几个

//inLicense是参数名,XSD_STRING是参数类型,IN代表传入

call.addParameter("inLicense", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

call.addParameter("inConditions", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

          //带命名空间的写法        

          //call.setOperationName(new QName("http://bussiness.***.com", "callPT"));           //call.addParameter(new QName("http://bussiness.***.com","xmlData"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);          //call.addParameter(new QName("http://bussiness.***.com","methodName"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

          //设置返回类型

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);          //解决错误:服务器未能识别 HTTP 头 SOAPAction 的值           call.setUseSOAPAction(true);          call.setSOAPActionURI(targetNamespace + operationName);

Object ret= null;

try{

//使用invoke调用方法,Object数据放传入的参数值

ret = call.invoke(new Object[] {inLicense,inConditions});

}catch(Exception e){

e.printStackTrace();

}

//输出SOAP请求报文

System.out.println("--SOAP Request: " + call.getMessageContext().getRequestMessage().getSOAPPartAsString());

//输出SOAP返回报文

System.out.println("--SOAP Response: " + call.getResponseMessage().getSOAPPartAsString());

//输出返回信息

System.out.println("result==="+ret.toString());

}catch(Exception e){

e.printStackTrace();

}

}

}

下面是输出结果信息:

--SOAP Request: **********

--SOAP Response: <?xml version="1.0" encoding="UTF-8"?>

<RESPONSE errorcode="-72" code="0" countrows="1"><ROWS><ROW><ErrorCode>-72</ErrorCode><ErrorMsg>IP地址受限</ErrorMsg></ROW></ROWS></RESPONSE>

result===

-72IP地址受限

以上就是Java 使用Axis调用WebService的示例代码的详细内容,更多关于Java 使用Axis调用WebService的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Spring Web Jackson对RequestBody反序列化失败的解决
下一篇:通过实例了解cookie机制特性及使用方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~