我正在使用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的实例吗?
答案 0 :(得分:0)
重新阅读文档,
Async Http Client库的目的是允许Java应用程序 轻松执行HTTP请求并异步处理HTTP 响应。
建议请求执行阻止,但响应处理不会。