0

我正在使用 AndroidHttpClient 向登录页面发出 https 发布请求。客户端实例是这样创建的:

AndroidHttpClient client = AndroidHttpClient.newInstance("Android");

在向https://mydomain.com/login发出请求后,我的活动在稍后调用 client.close() 时崩溃。

连接返回有效响应,当不在同一个域(http://mydomain.com/login)上使用 ssl 时,一切正常,我可以调用 client.close() 而不会崩溃。

我没有查看源代码,但 Android 的文档非常简短,只是说应该调用 .close 来释放与客户端关联的资源。这是预期的行为还是我错过了其他东西?有没有更好的方法来关闭/释放此类对象的资源?

4

2 回答 2

1

关于您的 NetworkOnMainThreadException:三个方法 onPreExecute、onProgressUpdate 和 onPostExecute 在 UI 线程上执行。这是 AsyncTasks 的要点之一。因此,将您的close()电话移至doInBackground().

于 2013-07-06T20:26:00.880 回答
0

抱歉,这是一个愚蠢的问题,并且与在 onPostExecute 中调用 client.close() 有关,我猜它确实在主线程中执行?将它移到 doInBackground 方法中解决了这个问题。

于 2013-07-06T20:25:28.630 回答