Jump to content

Zybez price fetcher


mixuhd

Recommended Posts

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 by mixuhd
  • Like 3
Link to comment
Share on other sites

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

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

  • 1 month later...
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...