Java调用asmx(WebService)

首次接触到WebService,要调用一个发送短信的WebService里方法sendMQ,不废话,自己留个备份,也给需要的朋友,代码如下:

Service service = new Service();
String url = "http://xxxxx.xx.xx/yy.asmx";
//在浏览器中打开url,可以找到SOAPAction: "http://www.chinsoft.com.cn/SendMQ"
String namespace = "http://www.chinsoft.com.cn/";
String actionUri = "SendMQ"; //Action路径
String op = "SendMQ"; //要调用的方法名
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
call.setUsername("your username"); // 用户名(如果需要验证)
call.setPassword("your password"); // 密码
call.setUseSOAPAction(true);
call.setSOAPActionURI(namespace + actionUri); // action uri
call.setOperationName(new QName(namespace, op));// 设置要调用哪个方法
// 设置参数名称,具体参照从浏览器中看到的
call.addParameter(new QName(instance.NAMESPACE, "sender"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(instance.NAMESPACE, "phoneNumber"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(instance.NAMESPACE, "content"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(instance.NAMESPACE, "sendTime"), XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); // 要返回的数据类型
String sendTime = "2011-07-14 13:05:32";
Object[] params = new Object[] {"xxx", "13223333333", "测试短信", sendTime };
String result = (String) call.invoke(params); //方法执行后的返回值

以上代码用到的包:apache axis
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;







你可能感兴趣的:(Java)