package com.qianwen.core.http; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import java.io.Closeable; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.file.CopyOption; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Map; import javax.annotation.Nullable; import okhttp3.Cookie; import okhttp3.Headers; import okhttp3.MediaType; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; import okhttp3.internal.Util; import com.qianwen.core.tool.jackson.JsonUtil; import com.qianwen.core.tool.utils.Exceptions; /* loaded from: blade-starter-http-9.3.0.0-SNAPSHOT.jar:org/springblade/core/http/HttpResponse.class */ public class HttpResponse implements ResponseSpec, Closeable { private final Request request; private final Response response; private final ResponseBody body; /* JADX INFO: Access modifiers changed from: package-private */ public HttpResponse(final Response response) { this.request = response.request(); this.response = response; this.body = ifNullBodyToEmpty(response.body()); } @Override // org.springblade.core.http.ResponseSpec public int code() { return this.response.code(); } @Override // org.springblade.core.http.ResponseSpec public String message() { return this.response.message(); } @Override // org.springblade.core.http.ResponseSpec public boolean isOk() { return this.response.isSuccessful(); } @Override // org.springblade.core.http.ResponseSpec public boolean isRedirect() { return this.response.isRedirect(); } @Override // org.springblade.core.http.ResponseSpec public Headers headers() { return this.response.headers(); } @Override // org.springblade.core.http.ResponseSpec public List cookies() { return Cookie.parseAll(this.request.url(), headers()); } @Override // org.springblade.core.http.ResponseSpec public Request rawRequest() { return this.request; } @Override // org.springblade.core.http.ResponseSpec public Response rawResponse() { return this.response; } @Override // org.springblade.core.http.ResponseSpec public ResponseBody rawBody() { return this.body; } @Override // org.springblade.core.http.ResponseSpec public String asString() { try { return this.body.string(); } catch (IOException e) { throw Exceptions.unchecked(e); } } @Override // org.springblade.core.http.ResponseSpec public byte[] asBytes() { try { return this.body.bytes(); } catch (IOException e) { throw Exceptions.unchecked(e); } } @Override // org.springblade.core.http.ResponseSpec public InputStream asStream() { return this.body.byteStream(); } @Override // org.springblade.core.http.ResponseSpec public JsonNode asJsonNode() { return JsonUtil.readTree(asBytes()); } @Override // org.springblade.core.http.ResponseSpec public T asValue(Class valueType) { return (T) JsonUtil.readValue(asBytes(), valueType); } @Override // org.springblade.core.http.ResponseSpec public T asValue(TypeReference typeReference) { return (T) JsonUtil.readValue(asBytes(), typeReference); } @Override // org.springblade.core.http.ResponseSpec public List asList(Class valueType) { return JsonUtil.readList(asBytes(), valueType); } @Override // org.springblade.core.http.ResponseSpec public Map asMap(Class keyClass, Class valueType) { return JsonUtil.readMap(asBytes(), keyClass, valueType); } @Override // org.springblade.core.http.ResponseSpec public Map asMap(Class valueType) { return asMap(String.class, valueType); } @Override // org.springblade.core.http.ResponseSpec public T asDomValue(Class valueType) { return (T) DomMapper.readValue(asStream(), valueType); } @Override // org.springblade.core.http.ResponseSpec public List asDomList(Class valueType) { return DomMapper.readList(asStream(), valueType); } @Override // org.springblade.core.http.ResponseSpec public File toFile(File file) { toFile(file.toPath()); return file; } @Override // org.springblade.core.http.ResponseSpec public Path toFile(Path path) { try { Files.copy(asStream(), path, new CopyOption[0]); return path; } catch (IOException e) { throw Exceptions.unchecked(e); } } @Override // org.springblade.core.http.ResponseSpec public MediaType contentType() { return this.body.contentType(); } @Override // org.springblade.core.http.ResponseSpec public long contentLength() { return this.body.contentLength(); } public String toString() { return this.response.toString(); } private static ResponseBody ifNullBodyToEmpty(@Nullable ResponseBody body) { return body == null ? Util.EMPTY_RESPONSE : body; } @Override // java.io.Closeable, java.lang.AutoCloseable public void close() throws IOException { Util.closeQuietly(this.body); } }