我正在尝试从 API 的端点获取数据,我注意到我试图通过 HTTP POST 方法获取的数据很大,并且 API 的服务器响应我的响应,其中一个标头设置为Transfer-Encoding: chunked
,我想读取全部数据。在我的代码中,我使用java.net.HttpURLConnection
来建立我的发布请求并读取数据,如下所示。
不幸的是,对于这种情况,我正在java.io.IOException: Premature EOF
从BufferedReader
( 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();
}