diff --git a/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java b/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java index 5350d427da..39ca8e2e90 100644 --- a/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java +++ b/http-api/src/main/java/net/runelite/http/api/item/ItemClient.java @@ -29,6 +29,7 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.Arrays; import javax.imageio.ImageIO; import net.runelite.http.api.RuneLiteAPI; import okhttp3.HttpUrl; @@ -72,6 +73,42 @@ public class ItemClient } } + public ItemPrice[] lookupItemPrice(Integer[] itemIds) throws IOException + { + HttpUrl.Builder urlBuilder = RuneLiteAPI.getApiBase().newBuilder() + .addPathSegment("item") + .addPathSegment("price"); + + for (int itemId : itemIds) + { + urlBuilder.addQueryParameter("id", String.valueOf(itemId)); + } + + HttpUrl url = urlBuilder.build(); + + logger.debug("Built URI: {}", url); + + Request request = new Request.Builder() + .url(url) + .build(); + + try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute()) + { + if (!response.isSuccessful()) + { + logger.debug("Error looking up items {}: {}", Arrays.toString(itemIds), response.message()); + return null; + } + + InputStream in = response.body().byteStream(); + return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), ItemPrice[].class); + } + catch (JsonParseException ex) + { + throw new IOException(ex); + } + } + public BufferedImage getIcon(int itemId) throws IOException { HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()