文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/
SOAP
SOAP,即Simple Object Access Protocol,是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。Android并不提供SOAP API接口。开发者可以通过kSOAP2开发套件在Android上建立SOAP client,具体参见http://code.google.com/p/ksoap2-android/。
作为project,除了在终端上实现SOAP client外,还可以在网络部署支持SOAP的服务器,Android应用和服务器相连,服务器再通过SOAP连到目标服务器。如果目标服务器有改动(尤其不是自己开发的,不受控),我们不需要更新Android上的应用,只需更新中间的SOAP服务器。又例如,我们需要对用户订购进行管理,用户订购可以在中间服务器进行,这是一种很有用的结构,将业务逻辑和用户管理分离。
JSON和XMLPullParser
Android提供JSON(JavaScript Object Notation)解析API,提供XML解析API。JSON的API封装在org.json包,XML解析可以使用XMLPullParser,具体参见Android学习笔记(三八):资源resource(上)、XML解析(XmlPullParser) 。
Exception处理
HTTP service是外部服务,对于异常处理要重视,包括传输异常、协议异常和超时。传输异常是通常是网络连接差。协议异常出现在协议层,服务器通常会返回一个4xx的错误,例如要求携带login信息,但是没有。超时有连接超时和socket超时,前者是无法连接到服务器,后者是连接上了,但是服务器在指定时间内没有响应。对于传输异常,HttpClient已经很好地进行处理。对于协议异常,那是我们处理业务逻辑代码的事。我们需要处理的是超时。
下面的例子是异常进行自动重连(包括传输异常和超时),最多可重连3次。
 public HttpResponse executeHttpGetWithRetry() throws Exception { 
     int retry = 3;   //最大重连次数 
     int count = 0; //实际计数 
      
     while (count < retry) { 
         count += 1; 
         try {  
             HttpResonse response = executeHttpGet();   //在上一学习例子中的multiPartTest基础上,修改为更简单的executeHttpGet方法 
             // 如果到此,说明运行成功,返回响应
             return response; 
         } catch (Exception e) { 
             //如果到此,说明异常出现,根据重连次数进行重试 
             if (count < retry) {  
                  System.out.println(e.getMessage()); 
             } else { 
                 System.out.println("all retries failed"); 
                 throw e; 
             } 
         } 
     } 
     return null; 
 }
本博文涉及的例子代码,可以在Pro Android学习:Http service小例子中下载。
相关链接: 我的Android开发相关文章
 
                   
                   
                   
                   
                            
 
                             本文介绍了如何在Android应用中使用SOAP协议及kSOAP2开发套件,并探讨了通过中间服务器处理SOAP请求的方法。同时,文章还讲解了Android平台上的JSON解析及XMLPullParser的使用,并提供了HTTP服务异常处理的示例。
本文介绍了如何在Android应用中使用SOAP协议及kSOAP2开发套件,并探讨了通过中间服务器处理SOAP请求的方法。同时,文章还讲解了Android平台上的JSON解析及XMLPullParser的使用,并提供了HTTP服务异常处理的示例。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1047
					1047
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            