前段时间接触了soap,本来感觉挺难得但是接触后感觉也就那样,望新接触的童鞋们不要和我一样。要想用soap协议首先我们就需要导入 一个关于它的第三方jar包ksoap2,然后后台开发人员会给我们一个wsdl文件,这个jar包的链接在文章最后会写上,话不多说,直接上代码
/**
* 数据下载
* @param methodName Soap请求网址后缀
* @param name 上传的参数名称
* @param value 上传的参数值(一般就是json字符串)
* @return
*/
public static SoapObject SoapUtil(String methodName,String name ,String value)
{
SoapObject object =null;
// 命名空间
String nameSpace = "aaaaa";//此处不能为空
// EndPoint
String endPoint = "bbbbbbb";//此处不能为空
// SOAP Action
String soapAction ="";//可为空
// 指定WebService的命名空间和调用的方法名
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 设置是否调用的是dotNet开发的WebService
envelope.dotNet = false;
SoapObject rpc = new SoapObject(nameSpace, methodName);
rpc.addProperty(name, value);
envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
// 等价于envelope.bodyOut = rpc;
// HttpTransportSE transport = new HttpTransportSE(endPoint);
//超出时间
HttpTransportSE transport=new HttpTransportSE(endPoint, 60*1000) ;
try
{
// 调用WebService
transport.call(soapAction, envelope);
// 获取返回的数据
object = (SoapObject) envelope.bodyIn;
}catch (Exception e) {
e.printStackTrace();
}
return object;
}
这样我们就获取了数据,但是这个数据还不是我们想要的,这返回的是一个SoapObject,所以就需要以下处理
String results = object.getProperty("关键字").toString();
这样我们就得到了我们需要的数据,接下来就没什么了,下面是jar包链接