com.ning.http.client.AsyncHttpClient和NetworkOnMainThreadException

时间:2013-12-29 07:25:16

标签: android asynchttpclient

我正在使用com.ning.http.client.AsyncHttpClient打开Web套接字连接,如下所示。

AsyncHttpClient client = new AsyncHttpClient();
try {
    client.prepareGet(url)
         .execute(new WebSocketUpgradeHandler.Builder()
                 .addWebSocketListener(new WebSocketListener() {
                     @Override
                     public void onOpen(WebSocket webSocket) {
                         Log.d(TAG, "opened");
                     }

                     @Override
                     public void onClose(WebSocket webSocket) {
                         Log.d(TAG, "closed");
                     }

                     @Override
                     public void onError(Throwable throwable) {
                         Log.d(TAG, "error");
                     }
                 }).build());
} catch (IOException e) {
    e.printStackTrace();
}

github文档https://github.com/AsyncHttpClient/async-http-client中概述了这一点。

但是,每次onError例外,我都会看到android.os.NetworkOnMainThreadException被调用。

这是为什么?我真的需要一个客户端可以运行的单独线程或AsyncTask的实例吗?

1 个答案:

答案 0 :(得分:0)

重新阅读文档,

  

Async Http Client库的目的是允许Java应用程序   轻松执行HTTP请求并异步处理HTTP   响应。

建议请求执行阻止,但响应处理不会。