可能重复:
执行 readLine() 时套接字卡住
我写了 jar 库并想在我的 android 项目中使用它。这是该库中的一个重要方法:
private static String convertStreamToString(InputStream is) {
/* is - it's the inputStream created from server response entity.
I use org.apache.http classes to communicate with server. */
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) { // <-- this line
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
如果我使用我的库来构建 Java 小程序并在 PC 上运行它——这段代码可以很好地工作。
但是,如果我在 Android 应用程序中使用它并在模拟器或设备上运行它,它有时会(并非总是!)在标记线上停留很长时间。所以在这种情况下会发生 SockedTimeoutExceptions。
所以,我想知道原因。如果你能帮助我摆脱这个问题,那就太好了。