client: use guice provided http client everywhere

This commit is contained in:
Adam
2020-06-26 13:44:14 -04:00
parent f9aea0d958
commit 47c375cb03
52 changed files with 407 additions and 244 deletions

View File

@@ -29,24 +29,22 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@RequiredArgsConstructor
public class AccountClient
{
private static final Logger logger = LoggerFactory.getLogger(AccountClient.class);
private final OkHttpClient client;
private UUID uuid;
public AccountClient()
{
}
public AccountClient(UUID uuid)
public void setUuid(UUID uuid)
{
this.uuid = uuid;
}
@@ -59,13 +57,13 @@ public class AccountClient
.addQueryParameter("uuid", uuid.toString())
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
InputStream in = response.body().byteStream();
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), OAuthResponse.class);
@@ -83,16 +81,16 @@ public class AccountClient
.addPathSegment("logout")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.header(RuneLiteAPI.RUNELITE_AUTH, uuid.toString())
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
logger.debug("Sent logout request");
log.debug("Sent logout request");
}
}
@@ -103,20 +101,20 @@ public class AccountClient
.addPathSegment("session-check")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.header(RuneLiteAPI.RUNELITE_AUTH, uuid.toString())
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
catch (IOException ex)
{
logger.debug("Unable to verify session", ex);
log.debug("Unable to verify session", ex);
return true; // assume it is still valid if the server is unreachable
}
}

View File

@@ -28,14 +28,19 @@ import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import lombok.AllArgsConstructor;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
@AllArgsConstructor
public class ChatClient
{
private final OkHttpClient client;
public boolean submitKc(String username, String boss, int kc) throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
@@ -51,7 +56,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -70,7 +75,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -94,7 +99,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -112,7 +117,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -139,7 +144,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -157,7 +162,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -188,7 +193,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -207,7 +212,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -231,7 +236,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -249,7 +254,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -276,7 +281,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -294,7 +299,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -323,7 +328,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
return response.isSuccessful();
}
@@ -341,7 +346,7 @@ public class ChatClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{

View File

@@ -30,44 +30,41 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@AllArgsConstructor
@Slf4j
public class ConfigClient
{
private static final Logger logger = LoggerFactory.getLogger(ConfigClient.class);
private static final MediaType TEXT_PLAIN = MediaType.parse("text/plain");
private final OkHttpClient client;
private final UUID uuid;
public ConfigClient(UUID uuid)
{
this.uuid = uuid;
}
public Configuration get() throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("config")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.header(RuneLiteAPI.RUNELITE_AUTH, uuid.toString())
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
InputStream in = response.body().byteStream();
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), Configuration.class);
@@ -87,7 +84,7 @@ public class ConfigClient
.addPathSegment(key)
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.put(RequestBody.create(TEXT_PLAIN, value))
@@ -95,12 +92,12 @@ public class ConfigClient
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
logger.warn("Unable to synchronize configuration item", e);
log.warn("Unable to synchronize configuration item", e);
future.completeExceptionally(e);
}
@@ -108,7 +105,7 @@ public class ConfigClient
public void onResponse(Call call, Response response)
{
response.close();
logger.debug("Synchronized configuration value '{}' to '{}'", key, value);
log.debug("Synchronized configuration value '{}' to '{}'", key, value);
future.complete(null);
}
});
@@ -125,7 +122,7 @@ public class ConfigClient
.addPathSegment(key)
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.delete()
@@ -133,12 +130,12 @@ public class ConfigClient
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
logger.warn("Unable to unset configuration item", e);
log.warn("Unable to unset configuration item", e);
future.completeExceptionally(e);
}
@@ -146,7 +143,7 @@ public class ConfigClient
public void onResponse(Call call, Response response)
{
response.close();
logger.debug("Unset configuration value '{}'", key);
log.debug("Unset configuration value '{}'", key);
future.complete(null);
}
});

View File

@@ -25,23 +25,26 @@
package net.runelite.http.api.examine;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@RequiredArgsConstructor
public class ExamineClient
{
private static final Logger logger = LoggerFactory.getLogger(ExamineClient.class);
private static final MediaType TEXT = MediaType.parse("text");
private final OkHttpClient client;
public void submitObject(int id, String text)
{
submit("object", id, text);
@@ -65,26 +68,26 @@ public class ExamineClient
.addPathSegment(Integer.toString(id))
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create(TEXT, text))
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
logger.warn("Error submitting examine", e);
log.warn("Error submitting examine", e);
}
@Override
public void onResponse(Call call, Response response)
{
response.close();
logger.debug("Submitted examine info for {} {}: {}", type, id, text);
log.debug("Submitted examine info for {} {}: {}", type, id, text);
}
});
}

View File

@@ -28,34 +28,27 @@ import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.inject.Inject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@RequiredArgsConstructor
public class FeedClient
{
private static final Logger logger = LoggerFactory.getLogger(FeedClient.class);
private final OkHttpClient client;
@Inject
public FeedClient(OkHttpClient client)
{
this.client = client;
}
public FeedResult lookupFeed() throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("feed.js")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
@@ -65,7 +58,7 @@ public class FeedClient
{
if (!response.isSuccessful())
{
logger.debug("Error looking up feed: {}", response);
log.debug("Error looking up feed: {}", response);
return null;
}

View File

@@ -27,6 +27,7 @@ package net.runelite.http.api.ge;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
@@ -34,15 +35,19 @@ import static net.runelite.http.api.RuneLiteAPI.JSON;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
@Slf4j
@RequiredArgsConstructor
public class GrandExchangeClient
{
private static final Gson GSON = RuneLiteAPI.GSON;
private final OkHttpClient client;
@Setter
private UUID uuid;
@Setter
@@ -69,7 +74,7 @@ public class GrandExchangeClient
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)

View File

@@ -25,9 +25,10 @@
package net.runelite.http.api.hiscore;
import java.io.IOException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.csv.CSVFormat;
@@ -35,8 +36,11 @@ import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
@Slf4j
@RequiredArgsConstructor
public class HiscoreClient
{
private final OkHttpClient client;
public HiscoreResult lookup(String username, HiscoreEndpoint endpoint) throws IOException
{
return lookup(username, endpoint.getHiscoreURL());
@@ -97,7 +101,7 @@ public class HiscoreClient
String responseStr;
try (Response okresponse = RuneLiteAPI.CLIENT.newCall(okrequest).execute())
try (Response okresponse = client.newCall(okrequest).execute())
{
if (!okresponse.isSuccessful())
{

View File

@@ -31,27 +31,20 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.util.Map;
import javax.inject.Inject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@AllArgsConstructor
public class ItemClient
{
private static final Logger logger = LoggerFactory.getLogger(ItemClient.class);
private final OkHttpClient client;
@Inject
public ItemClient(OkHttpClient client)
{
this.client = client;
}
public ItemPrice[] getPrices() throws IOException
{
HttpUrl.Builder urlBuilder = RuneLiteAPI.getApiBase().newBuilder()
@@ -60,7 +53,7 @@ public class ItemClient
HttpUrl url = urlBuilder.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
@@ -70,7 +63,7 @@ public class ItemClient
{
if (!response.isSuccessful())
{
logger.warn("Error looking up prices: {}", response);
log.warn("Error looking up prices: {}", response);
return null;
}
@@ -92,7 +85,7 @@ public class ItemClient
HttpUrl url = urlBuilder.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
@@ -102,7 +95,7 @@ public class ItemClient
{
if (!response.isSuccessful())
{
logger.warn("Error looking up item stats: {}", response);
log.warn("Error looking up item stats: {}", response);
return null;
}

View File

@@ -41,6 +41,7 @@ import static net.runelite.http.api.RuneLiteAPI.JSON;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
@@ -51,6 +52,7 @@ public class LootTrackerClient
{
private static final Gson GSON = RuneLiteAPI.GSON;
private final OkHttpClient client;
private final UUID uuid;
public CompletableFuture<Void> submit(Collection<LootRecord> lootRecords)
@@ -67,7 +69,7 @@ public class LootTrackerClient
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
@@ -99,7 +101,7 @@ public class LootTrackerClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{
@@ -134,7 +136,7 @@ public class LootTrackerClient
.url(builder.build())
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)

View File

@@ -28,15 +28,20 @@ import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
@Slf4j
@AllArgsConstructor
public class OSBGrandExchangeClient
{
private final OkHttpClient client;
public OSBGrandExchangeResult lookupItem(int itemId) throws IOException
{
final HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
@@ -51,7 +56,7 @@ public class OSBGrandExchangeClient
.url(url)
.build();
try (final Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (final Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{

View File

@@ -29,34 +29,27 @@ import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.inject.Inject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@RequiredArgsConstructor
public class WorldClient
{
private static final Logger logger = LoggerFactory.getLogger(WorldClient.class);
private final OkHttpClient client;
@Inject
public WorldClient(OkHttpClient client)
{
this.client = client;
}
public WorldResult lookupWorlds() throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
.addPathSegment("worlds.js")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.url(url)
@@ -66,7 +59,7 @@ public class WorldClient
{
if (!response.isSuccessful())
{
logger.debug("Error looking up worlds: {}", response);
log.debug("Error looking up worlds: {}", response);
throw new IOException("unsuccessful response looking up worlds");
}

View File

@@ -25,18 +25,24 @@
package net.runelite.http.api.xp;
import java.io.IOException;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
public class XpClient
{
private static final Logger logger = LoggerFactory.getLogger(XpClient.class);
private final OkHttpClient client;
public XpClient(OkHttpClient client)
{
this.client = client;
}
public void update(String username)
{
@@ -50,19 +56,19 @@ public class XpClient
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
logger.warn("Error submitting xp track", e);
log.warn("Error submitting xp track", e);
}
@Override
public void onResponse(Call call, Response response)
{
response.close();
logger.debug("Submitted xp track for {}", username);
log.debug("Submitted xp track for {}", username);
}
});
}

View File

@@ -30,20 +30,23 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import static net.runelite.http.api.RuneLiteAPI.JSON;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@AllArgsConstructor
public class XteaClient
{
private static final Logger logger = LoggerFactory.getLogger(XteaClient.class);
private final OkHttpClient client;
public void submit(XteaRequest xteaRequest)
{
@@ -53,19 +56,19 @@ public class XteaClient
.addPathSegment("xtea")
.build();
logger.debug("Built URI: {}", url);
log.debug("Built URI: {}", url);
Request request = new Request.Builder()
.post(RequestBody.create(JSON, json))
.url(url)
.build();
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
logger.warn("unable to submit xtea keys", e);
log.warn("unable to submit xtea keys", e);
}
@Override
@@ -75,7 +78,7 @@ public class XteaClient
{
if (!response.isSuccessful())
{
logger.debug("unsuccessful xtea response");
log.debug("unsuccessful xtea response");
}
}
finally
@@ -96,7 +99,7 @@ public class XteaClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
InputStream in = response.body().byteStream();
// CHECKSTYLE:OFF
@@ -120,7 +123,7 @@ public class XteaClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
InputStream in = response.body().byteStream();
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), XteaKey.class);