public String ws(String p1, String p2, String p3, String
p4){
String MethodName = null; //服务器接口方法名
//通过判断类型调用不同的接口方法
if(p4 ==
"login"){
//登陆判断
MethodName =
"UserIsExist";
}
else if(p4 ==
"register"){
//注册判断
MethodName =
"UserRegistration";
}
else if(p4 ==
"message"){
//信息接收
MethodName
="SendMessage";//要调用的webService方法
}
else if(p4 ==
"onlineDetails"){
//在线搜索
MethodName =
"GetVideoInfo";
}
String NameSpace="http://tempuri.org/";
//web服务使用的命名空间
String u="http://192.168.0.4:8099";
//请更换成你要访问的服务器地址//http://192.168.0.12:8002/WebService1.asmx
String
webService="/WebService/WebServiceMain.asmx";//webService路径
String
soapAction=NameSpace+MethodName;
String
url=u+webService;//最终要访问的网址
String
result=""; //调用web服务后的返回值
try{
SoapObject request=new
SoapObject(NameSpace,MethodName);//NameSpace
//webService方法中的参数,这个根据你的webservice来,可以没有。
//请注意,参数名称和参数类型,客户端和服务端一定要一致,否则将可能获取不到你想要的值
if(p4
== "login"){
//登陆判断
request.addProperty("UserName", p1);
request.addProperty("pass",
p2);
}
else if(p4 ==
"register"){
//注册判断
request.addProperty("empUserName",
p1);
request.addProperty("pass",
p2);
}
else if(p4 ==
"message"){
//信息接收
request.addProperty("struser",
p1);
}
else if(p4 ==
"onlineDetails"){
//在线搜索
request.addProperty("strguid",
p1);
}
//request.addProperty("_XmlString","/sdcard/" + xName +
".xml");
//String
s=ReadTxtFile("/mnt/sdcard/ZlibMST.gz");
//xmlString:WebService方法参数名;s:参数值
//request.addProperty("XmlString",s);
SoapSerializationEnvelope envelope=new
SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet=true;//访问.NET的webservice
envelope.setOutputSoapObject(request);
HttpTransportSE ht=new
HttpTransportSE(url);
ht.call(soapAction,
envelope);//调用call方法,访问webservice
if(envelope.getResponse()!=null){
SoapPrimitive
response=(SoapPrimitive)envelope.getResponse();
//如果要返回对象集合,在服务端可以将对象或集合序列化成json字符串返回,这边再反序列化成对象或集合
result=response.toString();//这里获得了webService的返回值
}
return result;
}catch(Exception e){
return
null;
}
}
原文:http://www.cnblogs.com/lr19910618/p/3555611.html