java编码故障中的REST 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

我对java中的API调用响应有问题

请参见下面我的请求的API响应,服务器使用无法读取的文本内容进行回复:

这是我的密码:

    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参数,它工作得非常好。多谢各位。