客户端从服务器端接收或上传字符串

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

posted @ 2014-02-19 11:45  我的爸爸叫刘桂堂  阅读(399)  评论(0编辑  收藏  举报