package com.demo.http;
import java.io.IOException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
/**
* 与webService通信的对象类
*
* @author 程林
*
*/
public class WebServices {
// webService地址
private String URL;
// 重设URL地址
public void setURL(String uRL) {
URL = uRL;
}
// 命名空间
private String namespace = "http://tempuri.org/";// 默认空间名
// 头信息
private String soupaction;
// 请求对象
private SoapObject request;
public SoapObject getRequest() {
return request;
}
/**
* 带参数的构造方法
*
* @param namespace
* 空间名称
* @param method_name
* 方法名称
* @param URL
* 通讯地址
*/
public WebServices(String method_name, String url) {
this.URL = url;
soupaction = namespace + method_name;
// 创建请求对象
request = new SoapObject(namespace, method_name);
}
/**
* 重设空间名称
*
* @param namespace
*/
public void setNamespace(String namespace) {
this.namespace = namespace;
}
/**
* 获取数据
*/
public Object getMeData() {
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER10);
envelope.bodyOut = request;
envelope.dotNet = true;
envelope.setOutputSoapObject(request);// 设置请求
// 建立网络连接
HttpTransportSE transport = new HttpTransportSE(URL, 30000);
transport.debug = true;
// 定义返回结果
Object detail = null;
try {
transport.call(soupaction, envelope);
// 得到返回的结果
detail = (Object) envelope.getResponse();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
return detail;
}
// 测试
public static void main(String[] args) {
String url = "http://XXXXXXXX.asmx";// webservices接口地址
String mathod = "方法名";// 方法名称
WebServices services = new WebServices(mathod, url);
// 传参数1
services.getRequest().addPropertyIfValue("参数名1", "参数值");
// 传参数2
services.getRequest().addPropertyIfValue("参数名2", "参数值");
//获取返回结果
String result = services.getMeData().toString();
System.out.println("结果为:" + result);
}
}
评论21
最新资源