java - java BufferReader IO 异常:流已关闭
问题描述
这是我目前的代码:
//Create connection
URL url = new URL(targetURL);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length",
Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36");
connection.setUseCaches(false);
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(true);
//Send request
DataOutputStream wr = new DataOutputStream (
connection.getOutputStream());
wr.writeBytes(urlParameters);
wr.close();
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
StringBuilder response = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
response.append(line);
response.append('\n');
}
rd.close();
is.close();
return response.toString();
它正在打破
while ((line = rd.readLine()) != null) {
这是在一个线程中,似乎其他线程正在一次关闭所有 BufferReader。我不确定问题是什么。
java.io.IOException: stream is closed
at sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:174)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:673)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3454)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at Utilities.Url_Opener.executePost(Url_Opener.java:105)
at Utilities.Url_Opener.gotoOutwarSessId(Url_Opener.java:43)
at Utilities.Url_Opener.gotoOutwar(Url_Opener.java:22)
at Utilities.Functions.castAllSkills(Functions.java:158)
at RaidTool.Skilling.run(Skiller.java:59)
at java.lang.Thread.run(Thread.java:748)
更新为包括整个(最小)功能。
解决方案
推荐阅读
- javascript - 跟随鼠标光标three.js的3d模型
- vba - 如何在 VBA(Microsoft Word)中打开文件然后激活该窗口?
- c# - 重置绑定正在阻止 WPF 中的 UI
- python - 从熊猫数据框中的列表中删除元素
- python - 合并两个 DataFrame 的函数
- javascript - AngularJS 如何在类控制器中访问 axios 的结果?
- iphone - 如何在我的网站上播放 iPhone 5 到 X 版本的广播流?
- python - 在 pandas 中创建一个通用的 headers 字段
- android - Flutter 安装错误,“状态不佳:未来已完成”
- excel - 来自用户窗体的按钮执行抛出下标超出范围错误