使用 HttpURLConnection 的 getInputStream() 方法读取响应的数据时,需要先检查响应码是否为200,并且设置正确的 Content-Type。如下所示:
URL url = new URL("http://example.com/path/to/api");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
if (conn.getResponseCode() == 200) {
String contentType = conn.getContentType();
if (contentType != null && !contentType.isEmpty()) {
if (contentType.equals("application/json")) { // 根据实际情况设置正确的 Content-Type
InputStream inputStream = conn.getInputStream();
String result = readInputStream(inputStream);
// 处理响应数据
} else {
// 处理 Content-Type 不正确的情况
}
} else {
// 处理没有设置 Content-Type 的情况
}
} else {
// 处理响应码不为200的情况
}
// 读取 InputStream 的代码
private String readInputStream(InputStream inputStream) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
return builder.toString();
}