BufferedReader的readLine函数异常

lvhua_2004 2016-06-07 09:57:06
下面这段代码从服务器获取数据,然后通过BufferedReader的readLine函数一行一行的放到StringBuilder里,但在执行的时候,跑到reader.readLine()时,有时会出现异常; 有时候又是正常的。不管是否产生异常, conn.getResponseCode返回都是正确的值(200), 恳请哪位大神帮忙解答一下 谢谢。

public class HttpUtils {
public static void getHttpRequest(final String address, final HttpResponseListener listener) {
new Thread(new Runnable(){

@Override
public void run() {
// TODO Auto-generated method stub
String line = null;
InputStream inputStream = null;
BufferedReader reader = null;
StringBuilder builder = new StringBuilder();
URL url = null;
HttpURLConnection conn = null;

try {
// open a HttpURLConnection object
url = new URL(address);
conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(8000);
conn.setReadTimeout(8000);
conn.setRequestMethod("GET");

// build the returned stream to string
inputStream = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
while ((line = reader.readLine()) != null) {
builder.append(line);
}

// callback builded string
if (listener != null) {
LogUtils.D("Server response: " + builder.toString());
listener.onFinish(builder.toString());
}
} catch (Exception e) {
if (listener != null) {
listener.onError(e);
}
} finally {
if (conn != null) {
conn.disconnect();
}
}
}

}).start();
}
}
...全文
258 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
minigeek 2016-06-10
  • 打赏
  • 举报
回复
line = reader.readLine()) != null改成line = reader.readLine()) != -1

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧