Android最流行的网络框架(原创)

        Android程序最重要的模块就是网络部分,如何从网络上下载数据,如何将处理过的数据上传至网络,每每是android程序的关键环节。java

       Android原生提供基于HttpClient和HttpUrlConnection的两种网络访问方式。利用原生的这两种方式编写网络代码,须要本身考虑不少,获取数据或许能够,可是若是要将手机本地数据上传至网络,根据不一样的web端接口,须要组织不一样的数据内容上传,给手机端形成了很大的工做量。
       目前有几种快捷的网络开发开源框架,给咱们提供了很是大的便利,他们应该是android网络处理部分开源框架的前三名。
            
            loopj这款开源框架一直是我钟爱的网络框架,在我写过的至关多的程序中,一直使用该框架,以致于对这个框架产生了厌倦的情绪。
            太详细的使用文档,太简单的使用方式,它就像是一门高级语言,定制好了全部的东西,你只须要拼凑一下就可以处理,因此你想定制更加细节的操做,只有本身动手,反而形成了一些没必要要的麻烦。
            loopj在前一段时间对https的支持并很差,若是要支持https,则须要费点功夫。
            1.4几个版本的升级对前部分代码的承接性不够好,形成了我对这个框架的厌倦。
            
                    
                    获取一张图片:
 
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://example.com/file.png", new FileAsyncHttpResponseHandler(/* Context */ this) {
@Override
public void onSuccess(int statusCode, Header[] headers, File response) {
// Do something with the file `response`
}
});
构造请求参数:
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
 loopj提供了各类关于返回参数的解析ResponseHandler,这也是我变得不喜欢loopj的一种缘由。
        
            
 
            对于Loopj来讲,HttpRequest就是一种简单粗暴,一个请求能够涵盖在一句代码当中,不给任何一点冗余的成分。
String response = HttpRequest.get("http://google.com").body();
                    将数据打印到控制台,或者其余的流:   
HttpRequest.get("http://google.com").receive(System.out);
                    忽略https的安全:
                    
HttpRequest request = HttpRequest.get("https://google.com");
//Accept all certificates
request.trustAllCerts();
//Accept all hostnames
request.trustAllHosts();
            对于小项目,这种网络框架简直就是一种幸福的选择。
                    
 
         
            
            相比于loopj和HttpRequest,okhttp要更为强大,使用方式也稍显复杂,可是倒是我目前最喜欢的感受。
            这是著名公司Square的开源框架,出手不凡。
            下面贴出我项目中的代码:
          
                    OkHttpClient client = new OkHttpClient();
                    client.networkInterceptors().add(new StethoInterceptor());

                    RequestBody body = new FormEncodingBuilder()
                            .add("data", data).add("token", getToken(data))
                            .add("system", "sample").build();

                    Request request = new Request.Builder()
                            .url("http://sample.com/api/v1")
                            .post(body).build();
                    Response response = client.newCall(request).execute();
                    final String reslut = response.body().string();
 
     在上述代码中有这样一行代码:
        client.networkInterceptors().add(new StethoInterceptor());
        这是使用facebook的开源stetho来进行查看网络访问状况的一个工具。
okhttp能够经过chrome的开发工具来查看手机的网络访问状况,就和web开发人员同样能够在浏览器中查看手机访问网络的实时信息,查看提交和返回结果,大大的方便了开发,这个工具的使用将会专门写一篇博客来进行讲解。
相关文章
相关标签/搜索