`
chenjingbo
  • 浏览: 459655 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AsyncHttpClient - 例子

 
阅读更多
package httpclient;

import com.ning.http.client.AsyncHttpProvider;
import com.ning.http.client.Response;

import java.io.*;
import java.util.concurrent.Future;

/**
 * User: zhenghui
 * Date: 13-8-26
 * Time: 上午10:41
 */
public class AsyncHttpClientTest {

    public static void main(String[] args) throws Exception{
        com.ning.http.client.AsyncHttpClient asyncHttpClient = new com.ning.http.client.AsyncHttpClient();
        Future<Response> f = asyncHttpClient.prepareGet("http://gju2.alicdn.com/bao/uploaded/i1/T13yOwFldXXXb1upjX.jpg").execute();
        Response response = f.get();

        BufferedInputStream bufferedInputStream = new BufferedInputStream(response.getResponseBodyAsStream());
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("d:/test.jpg"));

        int i = 0;
        //缓冲区的大小
        byte[] buffer = new byte[512];

        while(true) {
            if(bufferedInputStream.available() < 512) {
                while(i != -1) {
                    i = bufferedInputStream.read();
                    bufferedOutputStream.write(i);
                }
                break;
            } else {
                //当文件的大小还大于512字节时
                bufferedInputStream.read(buffer);
                bufferedOutputStream.write(buffer);

            }
        }

        //强制清空缓冲区的内容
        bufferedOutputStream.flush();
        //流的关闭
        bufferedInputStream.close();
        bufferedOutputStream.close();

        asyncHttpClient.close();
    }
}

 

顺便注意一下  

AHC(AsyncHttpClient)文件描述符泄漏

 

分享到:
评论

相关推荐

    AsyncHttpClient所需的jar包

    在这个例子中,我们创建了一个`AsyncHttpClient`实例,然后发起一个GET请求到`http://example.com`。当响应准备好时,我们打印出状态码和响应体。最后,我们关闭HttpClient实例以释放资源。 总之,AsyncHttpClient...

    AsyncHttpClient从服务器读取数据并显示详情

    AsyncHttpClient是一款高效的、...通过分析和学习这个例子,你可以更深入地理解AsyncHttpClient的用法,并将其应用到实际项目中。记得在实际操作时,要根据具体需求进行适当的异常处理和错误检查,确保代码的健壮性。

    android HttpURLConnection,AsyncHttpClient网络请求实例

    在这个例子中,我们创建了一个AsyncHttpClient实例,设置POST请求的参数,然后定义了一个回调函数来处理响应。`onSuccess`方法在请求成功时被调用,`onFailure`则在请求失败时执行。 对比两者,`HttpURLConnection`...

    botocore-tornado:基于AsyncHTTPClient的botocore子类

    此模块提供了使用龙卷风AsyncHTTPClient发出请求的类的子类。 尽可能将api与botocore api保持相同,唯一的区别是Operation.call返回一个Future,该请求在http请求完成时将被解析。 安装 pip install botocore-...

    android 异步 Http框架源码和例子

    AsyncHttpClient client = new AsyncHttpClient(); client.get("http://example.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] ...

    asynchttpclient:Golang异步http客户端使用回调

    在这个例子中,`DoAsync`方法会在后台启动一个goroutine,发送请求并等待响应。当响应到达时,`handleResponse`函数会被调用,处理响应数据。 **回调函数的灵活性** 回调函数可以根据实际需求进行设计,可以包括...

    tornado-4.5.2-cp36-cp36m-win_amd64.zip

    在这个例子中,`MainHandler` 类定义了一个处理GET请求的处理器,返回"Hello, world"。`make_app` 函数创建了一个应用实例,包含一个路由映射到 `MainHandler`。最后,应用监听8888端口并启动IOLoop。 Tornado 在...

    http 异步请求

    在这个例子中,`AsyncHttpResponseHandler`是一个回调接口,它的`onSuccess`和`onFailure`方法分别在请求成功或失败时被调用。开发者可以在这里解析返回的数据,更新UI或者处理错误。 此外,`async-http-client`还...

    人人都会设计模式---策略模式--Strategy

    就是对各个算法的一个封装「不是实现算法,而是封装算法」,让客户端非常容易的调用,省掉了客户端 ifelse恶心的判断,让客户端独立于各个策略这里举一个简单的例子:比如我们在Android中一定会使用到http网络请求...

    webService火车站点查询

    在这个例子中,我们创建了一个AsyncHttpClient实例,然后使用`prepareGet`方法设置请求URL,并传递一个异步完成处理器来处理响应。当请求完成时,`onCompleted`方法会被调用,其中我们可以获取并处理服务器返回的...

    android应用访问服务器端

    AsyncHttpClient client = new AsyncHttpClient(); client.get("http://example.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] ...

    tornado-1.2.1 python

    在这个例子中,我们创建了一个简单的Web服务器,监听8888端口,当访问根URL("/")时返回"Hello, world"。 总的来说,Tornado 1.2.1是一个强大且灵活的工具,适合开发高性能、实时的Web应用。了解并掌握其核心概念...

    AndroidAsync WebSocket通信

    以下是一个简单的创建WebSocket连接的例子: ```java AsyncHttpClient client = new AsyncHttpClient(); client.getWebSocket("ws://your.websocket.url", new AsyncHttpClient.WebSocketConnectCallback() { @...

    4基于 Tornado 的 HTTP 服务器简介及代码组织框架(1).md

    在这个例子中,我们定义了一个请求处理器`MainHandler`,当用户访问根目录时,通过`get`方法返回`Hello, world`。我们创建了一个`Application`实例,并告诉Tornado在8888端口监听。启动服务器后,在浏览器地址栏输入...

    asyncwsgi:对 Tornado 和 asyncio 的异步 WSGI 支持

    例子 姜戈 @asyncwsgi.coroutine def my_view(request): http_client = AsyncHTTPClient() response = yield http_client.fetch('http://www.google.com/') return render(request, 'my_view.html', {'code': re

    A0806VolleyJson解析数据1

    因此,Volley和更现代的库如 `OkHttp` 和 `AsyncHttpClient` 成为了更受欢迎的选择,它们提供了更为简洁和高效的API,降低了开发难度。 总的来说,Volley简化了Android中的网络请求流程,通过其内置的JSON解析能力...

    简单介绍Python的Tornado框架中的协程异步实现原理

    以下是一个简单的例子,展示了如何在Tornado框架中使用协程来异步处理两个任务。 ```python from tornado import gen from tornado import ioloop @gen.coroutine def fetch_async(url): ...

    Tornado教程.pdf

    在这个例子中,`IOLoop.current().start()` 启动了事件循环,等待处理到来的请求。 **三、Tornado 的长轮询与 WebSockets** Tornado 在实时 Web 应用中的优势在于对长轮询和 WebSockets 的支持。长轮询是一种模拟...

    python使用tornado实现简单爬虫

    接着,我们通过一个简单的例子介绍了如何使用Tornado进行网络请求。Tornado提供了`AsyncHTTPClient`类用于发起异步的HTTP请求,我们通过`fetch`方法来获取网页内容。异步的处理方式使得Tornado可以在不阻塞主线程的...

Global site tag (gtag.js) - Google Analytics