android开发利用AsyncHttpClient下载服务器文件

                // 服务器路径
                final String realPath = f.getLocation();
                // 本地路径
                final String path = DownloadUtil.getGroupFilePath(realPath);
                java.io.File file = new java.io.File(path);
                // 文件本地不存在,先下载到本地,再打开文件
                if (!file.exists()) {
                    String romoteUrl = Constants.API_WWW + Constants.API_WWW_SPLIT + f.getLocation();
                    AsyncHttpClient client = new AsyncHttpClient();
                    client.get(romoteUrl, new AsyncHttpResponseHandler() {
                        @Override
                        public void onStart() {
                            // called before request is started
                        }

                        @Override
                        public void onSuccess(int statusCode, Header[] headers, byte[] response) {
                            // called when response HTTP status is "200 OK"
                            if (statusCode == 200) {
                                BufferedOutputStream bos = null;
                                FileOutputStream fos = null;
                                java.io.File localFile = null;
                                try {
                                    localFile = new java.io.File(path);
                                    fos = new FileOutputStream(localFile);
                                    bos = new BufferedOutputStream(fos);
                                    bos.write(response);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                } finally {
                                    if (bos != null) {
                                        try {
                                            bos.close();
                                        } catch (IOException e1) {
                                            e1.printStackTrace();
                                        }
                                    }
                                    if (fos != null) {
                                        try {
                                            fos.close();
                                        } catch (IOException e1) {
                                            e1.printStackTrace();
                                        }
                                    }
                                }
                            }
                            // 根据后缀名来判断打开什么文件
                            Intent intent = openFiles(path);
                            if (IntentUtil.isIntentAvailable(context, intent)) {
                                startActivity(intent);
                            } else {
                                showToast("请安装第三方预览软件,如WPS");

                            }
                        }

                        @Override
                        public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
                            // called when response HTTP status is "4XX" (eg. 401, 403, 404)
                        }

                        @Override
                        public void onRetry(int retryNo) {
                            // called when request is retried
                        }
                    });

利用AsyncHttpClient实现图片的上传与下载

http://blog.csdn.net/xinzheng_wang/article/details/38925731

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio 中使用 AsyncHttpClient 库访问网络服务器可以按照以下步骤操作: 1. 在项目的 build.gradle 文件中添加以下依赖: ``` dependencies { implementation 'com.loopj.android:android-async-http:1.4.9' } ``` 2. 在需要访问网络的 Activity 或 Fragment 中创建 AsyncHttpClient 对象并发送请求。例如: ``` AsyncHttpClient client = new AsyncHttpClient(); String url = "http://www.example.com/api/get_data"; client.get(url, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { // 处理请求成功的响应 } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { // 处理请求失败的响应 } }); ``` 在上面的示例中,我们使用 `client.get()` 方法发送 GET 请求,并在响应成功或失败时分别调用 `onSuccess()` 和 `onFailure()` 方法来处理响应。 3. 如果需要发送 POST 请求,可以使用 `client.post()` 方法。例如: ``` String url = "http://www.example.com/api/post_data"; RequestParams params = new RequestParams(); params.put("key1", "value1"); params.put("key2", "value2"); client.post(url, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { // 处理请求成功的响应 } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { // 处理请求失败的响应 } }); ``` 在上面的示例中,我们使用 `RequestParams` 对象来设置 POST 请求的参数。 注意,AsyncHttpClient 库默认在后台线程中执行网络请求,因此不能在 UI 线程中直接访问网络。如果需要在 UI 线程中更新 UI,可以使用 Android 提供的 `runOnUiThread()` 方法或者使用第三方库例如 RxJava 来切换线程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值