Android Webservice 开发总结

来源:互联网 发布:中移动网络套餐 编辑:程序博客网 时间:2024/05/22 03:21

转自:http://blog.csdn.net/panfb227/article/details/6138865

【调用java cxf编写的webservice】

下面是访问Webservice的一段核心代码,Webservice是用java基于CXF开发的。

 结果返回单个字符串Result:

[java] view plaincopy
  1. protected void InvokeWebService() {  
  2.     try    
  3.     {     
  4.         String serviceUrl = Constant.URL;     
  5.         String methodName = "getSYfee";     
  6.         SoapObject request = new SoapObject(Constant.NAMESPACE,     
  7.                 methodName);     
  8.         request.addProperty("fromPort", mOrigin.getText().toString());     
  9.         request.addProperty("toPort", mDest.getText().toString());  
  10.         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(     
  11.                 SoapEnvelope.VER10);      
  12.         envelope.bodyOut = request;  
  13.         HttpTransportSE ht = new HttpTransportSE(serviceUrl);     
  14.   
  15.         ht.call(null, envelope);     
  16.         if (envelope.getResponse() != null)     
  17.         {     
  18.             String Re = "0";  
  19.             SoapObject soapObject = (SoapObject) envelope.getResponse();    
  20.   
  21.             if (mBoxType.getText().toString().trim().equals("20GP"))  
  22.             {  
  23.                 Re = soapObject.getProperty("twgp").toString();  
  24.             }  
  25.             else if (mBoxType.getText().toString().trim().equals("40GP"))  
  26.             {  
  27.                 Re = soapObject.getProperty("ftgp").toString();  
  28.             }  
  29.             else if (mBoxType.getText().toString().trim().equals("40HC"))  
  30.             {  
  31.                 Re = soapObject.getProperty("fth").toString();  
  32.             }  
  33.             result = Re;  
  34.         }     
  35.         else    
  36.         {     
  37.             result = "-1";     
  38.         }     
  39.     }     
  40.     catch (Exception e)       
  41.     {     
  42.         result = "-2";     
  43.     }                  
  44. }   

 结果返回多行多列数据集result:

[java] view plaincopy
  1. protected Object CallWebService() {  
  2.            Bundle getBundle = getIntent().getExtras();  
  3.   
  4.            String serviceUrl = Constant.URL;     
  5.            String methodName = "getCargoCrack";     
  6.            SoapObject request = new SoapObject(Constant.NAMESPACE,     
  7.                    methodName);     
  8.            request.addProperty("s_consign", getBundle.getString("Pass_Consign"));     
  9.            request.addProperty("s_container", getBundle.getString("Pass_Container"));  
  10.              
  11.            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(     
  12.                    SoapEnvelope.VER10);      
  13.            envelope.bodyOut = request;  
  14.            HttpTransportSE ht = new HttpTransportSE(serviceUrl);     
  15.            //(new MarshalBase64()).register(envelope);//放着没错   
  16.              
  17.         SoapObject result = null;  
  18.         try {  
  19.             // web service请求  
  20.             ht.call(null, envelope);  
  21.             // 得到返回结果  
  22.             result = (SoapObject) envelope.bodyIn;        
  23.               
  24.         } catch (Exception ex) {  
  25.             ex.printStackTrace();  
  26.         }  
  27.         return result;  
  28.   
  29.     }  

【调用.net编写的webservice】

与调用java的webservice最大区别在于,请求时需要传入soapAction

[java] view plaincopy
  1. /** 
  2.  * 请求.net web service 
  3.  */  
  4. public static Object CallWebService() {  
  5.     SoapObject result = null;  
  6.     try {  
  7.         String serviceUrl = Constant.URL;     
  8.         String methodName = "wbsLoginUser";    
  9.         String soapAction = Constant.NAMESPACE + "wbsLoginUser";  
  10.   
  11.         SoapObject request = new SoapObject(Constant.NAMESPACE,     
  12.                 methodName);     
  13.         request.addProperty("sUserCode""admin");     
  14.         request.addProperty("sPasswd""a");  
  15.           
  16.         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(     
  17.                 SoapEnvelope.VER11);      
  18.         envelope.bodyOut = request;  
  19.         envelope.dotNet = true;  
  20.         HttpTransportSE ht = new HttpTransportSE(serviceUrl);     
  21.         ht.debug = true;  
  22.   
  23.         // web service请求  
  24.         ht.call(soapAction, envelope);  
  25.         // 得到返回结果  
  26.         result = (SoapObject) envelope.bodyIn;  
  27.     } catch (Exception ex) {  
  28.         ex.printStackTrace();  
  29.     }  
  30.     return result;  



0 0
原创粉丝点击