android异步Http框架

首先在GitHub上下载异步Http框架代码以及相关文档:

将jar包放入lib包中即可;

 

接下来分别实现get、post、文件上传功能实现:

代码实现如下:

AsyncHttpClient client = new AsyncHttpClient();
        String path = "url连接";
        /**
         * Http--get请求
         */
        client.get(path, new AsyncHttpResponseHandler(){
            @Override
            @Deprecated
            public void onSuccess(String content) {
                super.onSuccess(content);
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }

            @Override
            @Deprecated
            public void onFailure(Throwable error, String content) {
                // TODO Auto-generated method stub
                super.onFailure(error, content);
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }
        });
        
        /**
         * http--post
         */
        RequestParams params = new RequestParams();
        params.put("account", "测试用户");
        params.put("password", "12315");
        client.post(path, params, new AsyncHttpResponseHandler(){
            @Override
            @Deprecated
            public void onSuccess(String content) {
                super.onSuccess(content);
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }
            @Override
            @Deprecated
            public void onFailure(Throwable error, String content) {
                // TODO Auto-generated method stub
                super.onFailure(error, content);
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }
        });
        /**
         * Http--文件上传
         */
        String path1 = "/sdcard/p.jpg";
        File file = new File(path1);
        try {
            params.put("profile_picture", file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        client.post("上传接口url地址",params, new AsyncHttpResponseHandler(){

            @Override
            @Deprecated
            public void onFailure(Throwable error, String content) {
                super.onFailure(error, content);
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }

            @Override
            @Deprecated
            public void onSuccess(String content) {
                Toast.makeText(MainActivity.this, content, Toast.LENGTH_SHORT).show();
            }

        } );

android_async_http框架将常用的Http协议进行封装,简化了开发者的操作,并且具有Gzip压缩数据的功能,

项目链接:https://github.com/loopj/android-async-http

通过线程池去处理资源访问
GET/ POSTparams建设者(RequestParams)
实现多重文件上传并且没有额外的第三方库
jar包只有19Kb,很小
优化网络请求,支持Gzip

虽然是比较优秀的http框架,但是在实际使用过程中也出现了一下不理想的问题,所以不建议使用。

更多内容:http://www.apkbus.com/blog-87624-55718.html

posted @ 2013-12-13 00:11  西北野狼  阅读(506)  评论(0编辑  收藏  举报