java编码故障中的REST API客户端响应
我对java中的API调用响应有问题 请参见下面我的请求的API响应,服务器使用无法读取的文本内容进行回复: 这是我的密码:java编码故障中的REST API客户端响应,java,api,client,Java,Api,Client,我对java中的API调用响应有问题 请参见下面我的请求的API响应,服务器使用无法读取的文本内容进行回复: 这是我的密码: String urlt = "xxxxxx"; URL url = new URL(urlt); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestPrope
String urlt = "xxxxxx";
URL url = new URL(urlt);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.addRequestProperty("Accept-Encoding", "gzip");
conn.addRequestProperty("User-Agent", "okhttp/3.4.1");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
以及响应头的示例:
通过以下行,您可以告诉服务器您已准备好接受压缩响应:
conn.addRequestProperty("Accept-Encoding", "gzip");
如响应头的图片所示,服务器强制并提供gzip编码(压缩)的内容
然后你继续阅读回复,假设它只是文本。。。所以是的,它在你的控制台上打印成垃圾
要么删除上面的标题,要么准备解压gzip内容。问题是什么?我猜问题是控制台中的垃圾输出,但您能用自己的话更清楚地解释它吗,不仅在屏幕截图附件中可以看到?是的!我已经从头文件中删除了gzip参数,它工作得非常好。多谢各位。