为何在Android 2.2上调用getInputStream()时HttpsURLConnection返回LocalCloseInputStream?

时间:2012-03-06 14:25:10

标签: android https httpurlconnection

每当我创建HttpsURLConnection而不是调用getInputStream()方法时,我会得到一个LocalCloseInputStream而不是ChunkedInputStream的实例,这会立即返回结束时我尝试从这个流中读取。没有例外,只是一个空流。

我已经尝试将keep.alive设置为false并将connect设置为close。这不起作用。

有两个问题看起来非常相似,但不幸的是我没有找到任何解决方案:

http://groups.google.com/group/android-developers/browse_thread/thread/d42c95992ae4dbda

http://groups.google.com/group/twitter4j/browse_thread/thread/105342823f7e3c67

1 个答案:

答案 0 :(得分:1)

对于早期版本的Android,您应该使用Apache HTTP客户端。它的效果要好得多。

您所看到的可能是多次调用#getInputStream() - 导致您检查了应用程序中缓存的默认状态(对于杯形蛋糕,默认情况下缓存为HTTP URL连接,即第二次可以从缓存提供响应,这可能不会返回ChunkedInputStream)。

您可以通过在之前调用上的#setUseCaches(false)来关闭缓存(或者通过调用#setDefaultUseCaches(false)

来禁用所有未来的连接