mixuhd Posted March 2, 2014 Share Posted March 2, 2014 (edited) import java.net.HttpURLConnection; import java.net.URL; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URLEncoder; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class PriceFetcher { public static double getAvgPrice(String q) { HttpURLConnection connection = null; BufferedReader rd = null; StringBuilder sb = null; String line = null; URL serverAddress = null; try { serverAddress = new URL("http://forums.zybez.net/runescape-2007-prices/api/item/" + URLEncoder.encode(q, "UTF-8")); connection = null; connection = (HttpURLConnection)serverAddress.openConnection(); connection.setRequestMethod("GET"); connection.setDoOutput(true); connection.setReadTimeout(10000); connection.setRequestProperty("User-Agent", "Bot"); connection.connect(); rd = new BufferedReader(new InputStreamReader(connection.getInputStream())); sb = new StringBuilder(); while ((line = rd.readLine()) != null) { sb.append(line + '\n'); } JsonParser parser = new JsonParser(); JsonObject obj = parser.parse(sb.toString()).getAsJsonObject(); if (obj.has("average")) { return obj.get("average").getAsDouble(); } else if (obj.has("error")) { System.out.println(obj.get("error").toString()); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { connection.disconnect(); rd = null; sb = null; connection = null; } return Double.NaN; } public static void main(String[] args) { System.out.println(getAvgPrice("0")); // => NaN System.out.println(getAvgPrice("Lobster")); // => 226.689 System.out.println(getAvgPrice("3+@@#$@.---")); // => NaN System.out.println(getAvgPrice("Blue partyhat")); // => 48370.227 } } Requires google-gson in your build path for parsing the JSON response! Edited March 2, 2014 by mixuhd 3 Link to comment Share on other sites More sharing options...
Freak Posted March 2, 2014 Share Posted March 2, 2014 Impressive, now I'm not a java programmer, but why this part: public static void main(String[] args) { System.out.println(getAvgPrice("0")); // => NaN System.out.println(getAvgPrice("Lobster")); // => 226.689 System.out.println(getAvgPrice("3+@@#$@.---")); // => NaN System.out.println(getAvgPrice("Blue partyhat")); // => 48370.227 Link to comment Share on other sites More sharing options...
Jack Posted March 2, 2014 Share Posted March 2, 2014 Impressive, now I'm not a java programmer, but why this part: public static void main(String[] args) { System.out.println(getAvgPrice("0")); // => NaN System.out.println(getAvgPrice("Lobster")); // => 226.689 System.out.println(getAvgPrice("3+@@#$@.---")); // => NaN System.out.println(getAvgPrice("Blue partyhat")); // => 48370.227 This is how you test it... Link to comment Share on other sites More sharing options...
Merccy Posted April 20, 2014 Share Posted April 20, 2014 (edited) This deserves to be used more . Ty mixu. Edited April 20, 2014 by Merccy Link to comment Share on other sites More sharing options...
lazyy Posted April 22, 2014 Share Posted April 22, 2014 Very nice but is it possible to grab every item in an area with the value of above 200 and list them ?? Link to comment Share on other sites More sharing options...