From 7a36f49896b34dd45f33462df2dd9c9045d5ce3e Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 9 Jan 2021 13:47:29 +0100 Subject: [PATCH] Add methods to null-safe extract a JSON object or array from the response body --- .../src/main/java/ctbrec/io/HttpClient.java | 50 +++++++------------ 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/common/src/main/java/ctbrec/io/HttpClient.java b/common/src/main/java/ctbrec/io/HttpClient.java index e8191a4e..c069c2ac 100644 --- a/common/src/main/java/ctbrec/io/HttpClient.java +++ b/common/src/main/java/ctbrec/io/HttpClient.java @@ -1,7 +1,15 @@ package ctbrec.io; -import static java.nio.charset.StandardCharsets.*; +import com.squareup.moshi.JsonAdapter; +import com.squareup.moshi.Moshi; +import ctbrec.Config; +import ctbrec.Settings.ProxyType; +import okhttp3.*; +import okhttp3.OkHttpClient.Builder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import javax.net.ssl.*; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -13,39 +21,11 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Objects; -import java.util.Set; import java.util.concurrent.TimeUnit; -import javax.net.ssl.KeyManager; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.squareup.moshi.JsonAdapter; -import com.squareup.moshi.Moshi; - -import ctbrec.Config; -import ctbrec.Settings.ProxyType; -import okhttp3.ConnectionPool; -import okhttp3.Cookie; -import okhttp3.Credentials; -import okhttp3.OkHttpClient; -import okhttp3.OkHttpClient.Builder; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.Route; -import okhttp3.WebSocket; -import okhttp3.WebSocketListener; +import static java.nio.charset.StandardCharsets.UTF_8; public abstract class HttpClient { private static final Logger LOG = LoggerFactory.getLogger(HttpClient.class); @@ -286,4 +266,12 @@ public abstract class HttpClient { } return result; } + + public static String bodyToJsonObject(Response response) { + return Optional.ofNullable(response.body()).map(Object::toString).orElse("{}"); + } + + public static String bodyToJsonArray(Response response) { + return Optional.ofNullable(response.body()).map(Object::toString).orElse("[]"); + } }