okhttp解码gzip代码
时间: 2023-11-06 22:48:54 浏览: 102
以下是使用 OkHttp 进行 gzip 解压的示例代码:
```java
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://example.com")
.build();
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
// 判断是否启用了 gzip 压缩
if ("gzip".equalsIgnoreCase(response.header("Content-Encoding"))) {
// 构建 GZIP 解压流
InputStream inputStream = new GZIPInputStream(response.body().byteStream());
// 使用 BufferedReader 读取解压后的文本
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
inputStream.close();
// 打印解压后的文本
System.out.println(sb.toString());
} else {
// 打印未压缩的文本
System.out.println(response.body().string());
}
} else {
System.out.println("请求失败: " + response.code() + " " + response.message());
}
```
在上面的代码中,我们首先判断服务器是否启用了 gzip 压缩,如果启用了,我们则使用 `GZIPInputStream` 对返回的数据进行解压,然后使用 `BufferedReader` 读取解压后的文本。如果服务器没有启用 gzip 压缩,则直接使用 `response.body().string()` 方法读取未压缩的文本。
阅读全文