我正在使用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实例?
发布于 2013-12-29 15:40:08
重新阅读文档,
Java客户端库的目的是让
应用程序能够轻松地执行Http请求和异步处理HTTP响应。
建议请求执行阻塞,但响应处理不阻塞。
https://stackoverflow.com/questions/20823038
复制相似问题