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;
}
}