Jump to content

mixuhd

Members
  • Posts

    11
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by mixuhd

  1. 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!

    • Like 3
×
×
  • Create New...