android 调用webservice

Android中调用Web Services有很多方法,我们现在使用的是ksoap,它是SOAP web services的客户端包,ksoap现在版本为2.0.它的一个主要优点就是对dotNET兼容性比较不错。

首先下载ksoap的包文件(下载地址),在Eclispe的Package Explorer中右键项目,Build Path>Add Libraries,找到ksoap2-android-assembly-2.4-jar-with-dependencies.jar添加该引用。代码如下:

public  class  WSHelper {
     final  static  String WSUrl= "http://xxx/WSUrl.asmx" ;
 
     private  static  String namespace = "http://tempuri.org/" ;
     /*************************************
      * 获取web services内容
      * @param url
      * @param params
      * @return
      *************************************/
     public  static  String GetResponse(String method,List<BasicNameValuePair> params){
         
         try  {
             String url = WSUrl;
             SoapObject request = new  SoapObject(namespace, method);
             for ( int  i= 0 ,len=params.size();i<len;i++){
                 request.addProperty(params.get(i).getName(), params.get(i).getValue());
             }
             SoapSerializationEnvelope envelope =
                 new  SoapSerializationEnvelope(SoapEnvelope.VER11);
             envelope.dotNet = true ;
             envelope.setOutputSoapObject(request);
             
             AndroidHttpTransport androidHttpTransport = new  AndroidHttpTransport(url);
             androidHttpTransport.call(namespace + method, envelope);
             
             SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
             return  result.toString();
         } catch  (Exception e) {
             return  "Error:calling the web services error" ;
         }
     }
}

调用时代码如下:

String method = "MethodName";//方法名称

List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();

params.add( new  BasicNameValuePair( "userId" , String.valueOf( 1995 )));

return WSHelper.GetResponse(method,params);


你可能感兴趣的:(android 调用webservice)