Android A';HttpGet';请求迫使关闭
我使用下面的代码,当我点击一个按钮时,它会强制关闭。我想从网页上读取响应,并将其显示在messagebox、edittext或其他任何内容中 如何解决此问题 代码Android A';HttpGet';请求迫使关闭,android,response,http-get,Android,Response,Http Get,我使用下面的代码,当我点击一个按钮时,它会强制关闭。我想从网页上读取响应,并将其显示在messagebox、edittext或其他任何内容中 如何解决此问题 代码 您正试图在UI代码中运行HTTP请求。这就是为什么你有一个接近的力量。请尝试在服务、AYSNTASK或线程中运行它,以便UI线程不会被阻止 请参考示例。发布堆栈跟踪,确保您没有在主(UI)线程上执行网络操作,这似乎是您正在执行的操作。您使用的Android版本是什么?因为我可能有一个答案。\从代码中,您似乎初始化了HttpClient
您正试图在UI代码中运行HTTP请求。这就是为什么你有一个接近的力量。请尝试在服务、AYSNTASK或线程中运行它,以便UI线程不会被阻止
请参考示例。发布堆栈跟踪,确保您没有在主(UI)线程上执行网络操作,这似乎是您正在执行的操作。您使用的Android版本是什么?因为我可能有一个答案。\从代码中,您似乎初始化了
HttpClient client=null
,然后调用client.execute(request)
。如果您使用非null
的东西初始化HttpClient
?@harism在这里是正确的,当前代码肯定会在resp=client.execute(request)
行上抛出NullPointerException
。。。一旦解决了这个问题,你就会得到Ramesh Sangili的答案中所示的问题,假设你目前没有在某种类型的后台线程中运行,我相信这在2.3及以下版本中属于最佳实践。根据他的平台,这个答案是正确的。
HttpGet request = new HttpGet("http://www.google.com");
HttpClient client = null;
HttpResponse resp = null;
try {
resp = client.execute(request);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpEntity entity = resp.getEntity();
MessageBox("Response : "+entity.toString());
}