0

我正在尝试从 API 的端点获取数据,我注意到我试图通过 HTTP POST 方法获取的数据很大,并且 API 的服务器响应我的响应,其中一个标头设置为Transfer-Encoding: chunked,我想读取全部数据。在我的代码中,我使用java.net.HttpURLConnection来建立我的发布请求并读取数据,如下所示。

不幸的是,对于这种情况,我正在java.io.IOException: Premature EOFBufferedReader( while((output = br.readLine()) != null)) 读取的行中进行调试,并且直到抛出异常之前,我才获得状态 http 200。

请求像我的代码中显示的分块数据有什么问题吗?

谢谢你。

String responseStr = "";
HttpURLConnection connection = null;
try {
     connection = (HttpURLConnection) new URL(this.url).openConnection();
     connection.setRequestProperty("content-type", "application/json");
     connection.setRequestProperty("Accept", "application/json");
     connection.setDoOutput(true);
     OutputStream os = connection.getOutputStream();
     os.write(payloadToBeRequested.getBytes());
     os.flush();

     BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
     String output = "";
     while((output = br.readLine()) != null){
         responseStr = responseStr + output;
     }
     status = connection.getResponseCode();
     connection.disconnect();
}catch(MalformedURLException ex){
     ex.printStackTrace();
}catch(IOException ex){
     ex.printStackTrace();
}
4

0 回答 0