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`实例,然后发起一个GET请求到`http://example.com`。当响应准备好时,我们打印出状态码和响应体。最后,我们关闭HttpClient实例以释放资源。 总之,AsyncHttpClient...
AsyncHttpClient是一款高效的、...通过分析和学习这个例子,你可以更深入地理解AsyncHttpClient的用法,并将其应用到实际项目中。记得在实际操作时,要根据具体需求进行适当的异常处理和错误检查,确保代码的健壮性。
在这个例子中,我们创建了一个AsyncHttpClient实例,设置POST请求的参数,然后定义了一个回调函数来处理响应。`onSuccess`方法在请求成功时被调用,`onFailure`则在请求失败时执行。 对比两者,`HttpURLConnection`...
此模块提供了使用龙卷风AsyncHTTPClient发出请求的类的子类。 尽可能将api与botocore api保持相同,唯一的区别是Operation.call返回一个Future,该请求在http请求完成时将被解析。 安装 pip install botocore-...
AsyncHttpClient client = new AsyncHttpClient(); client.get("http://example.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] ...
在这个例子中,`DoAsync`方法会在后台启动一个goroutine,发送请求并等待响应。当响应到达时,`handleResponse`函数会被调用,处理响应数据。 **回调函数的灵活性** 回调函数可以根据实际需求进行设计,可以包括...
在这个例子中,`MainHandler` 类定义了一个处理GET请求的处理器,返回"Hello, world"。`make_app` 函数创建了一个应用实例,包含一个路由映射到 `MainHandler`。最后,应用监听8888端口并启动IOLoop。 Tornado 在...
在这个例子中,`AsyncHttpResponseHandler`是一个回调接口,它的`onSuccess`和`onFailure`方法分别在请求成功或失败时被调用。开发者可以在这里解析返回的数据,更新UI或者处理错误。 此外,`async-http-client`还...
就是对各个算法的一个封装「不是实现算法,而是封装算法」,让客户端非常容易的调用,省掉了客户端 ifelse恶心的判断,让客户端独立于各个策略这里举一个简单的例子:比如我们在Android中一定会使用到http网络请求...
在这个例子中,我们创建了一个AsyncHttpClient实例,然后使用`prepareGet`方法设置请求URL,并传递一个异步完成处理器来处理响应。当请求完成时,`onCompleted`方法会被调用,其中我们可以获取并处理服务器返回的...
AsyncHttpClient client = new AsyncHttpClient(); client.get("http://example.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] ...
在这个例子中,我们创建了一个简单的Web服务器,监听8888端口,当访问根URL("/")时返回"Hello, world"。 总的来说,Tornado 1.2.1是一个强大且灵活的工具,适合开发高性能、实时的Web应用。了解并掌握其核心概念...
以下是一个简单的创建WebSocket连接的例子: ```java AsyncHttpClient client = new AsyncHttpClient(); client.getWebSocket("ws://your.websocket.url", new AsyncHttpClient.WebSocketConnectCallback() { @...
在这个例子中,我们定义了一个请求处理器`MainHandler`,当用户访问根目录时,通过`get`方法返回`Hello, world`。我们创建了一个`Application`实例,并告诉Tornado在8888端口监听。启动服务器后,在浏览器地址栏输入...
例子 姜戈 @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
因此,Volley和更现代的库如 `OkHttp` 和 `AsyncHttpClient` 成为了更受欢迎的选择,它们提供了更为简洁和高效的API,降低了开发难度。 总的来说,Volley简化了Android中的网络请求流程,通过其内置的JSON解析能力...
以下是一个简单的例子,展示了如何在Tornado框架中使用协程来异步处理两个任务。 ```python from tornado import gen from tornado import ioloop @gen.coroutine def fetch_async(url): ...
在这个例子中,`IOLoop.current().start()` 启动了事件循环,等待处理到来的请求。 **三、Tornado 的长轮询与 WebSockets** Tornado 在实时 Web 应用中的优势在于对长轮询和 WebSockets 的支持。长轮询是一种模拟...
接着,我们通过一个简单的例子介绍了如何使用Tornado进行网络请求。Tornado提供了`AsyncHTTPClient`类用于发起异步的HTTP请求,我们通过`fetch`方法来获取网页内容。异步的处理方式使得Tornado可以在不阻塞主线程的...