java BufferReader IO异常:流已关闭

java BufferReader IO异常:流已关闭,java,multithreading,ioexception,Java,Multithreading,Ioexception,这是我目前拥有的代码: //Create connection URL url = new URL(targetURL); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestPrope

这是我目前拥有的代码:

            //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)

更新为包含整个(最小)功能。

可能
状态
是一些3xx、4xx或5xx响应,而不是您的代码测试的两个响应。不,那么它不会进入该代码中,因此不会出错。您为什么这么说?在这种情况下,是什么阻止它进入代码?对不起,误读了你说的话。现在调查一下,这不是问题所在。将其更改为仅允许2xx,但仍然存在问题。可能
状态
是一些3xx、4xx或5xx响应,而不是您的代码测试的两个响应。不,那么它不会进入该代码,因此不会出错。您为什么这么说?在这种情况下,是什么阻止它进入代码?对不起,误读了你说的话。现在调查一下,这不是问题所在。将其更改为仅允许2xx,但仍然存在问题。