Jump to content

Search the Community

Showing results for tags 'lookup'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • OSBot
    • News & Announcements
    • Community Discussion
    • Bot Manager
    • Support Section
    • Mirror Client VIP
    • Script Factory
  • Scripts
    • Official OSBot Scripts
    • Script Factory
    • Unofficial Scripts & Applications
    • Script Requests
  • Market
    • OSBot Official Voucher Shop
    • Currency
    • Accounts
    • Services
    • Other & Membership Codes
    • Disputes
  • Graphics
    • Graphics
  • Archive

Product Groups

  • Premium Scripts
    • Combat & Slayer
    • Money Making
    • Minigames
    • Others
    • Plugins
    • Agility
    • Mining & Smithing
    • Woodcutting & Firemaking
    • Fishing & Cooking
    • Fletching & Crafting
    • Farming & Herblore
    • Magic & Prayer
    • Hunter
    • Thieving
    • Construction
    • Runecrafting
  • Donations
  • OSBot Membership
  • Backup

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


MSN


Website URL


ICQ


Yahoo


Skype


Location:


Interests

Found 1 result

  1. Simple and native: int twistedBowId = 20997; String webAddress = null; String webContents = null; Map<String, String> jsonData = null; try { webAddress = "https://api.rsbuddy.com/grandExchange?a=guidePrice&i=" + twistedBowId; webContents = downloadWebpage(webAddress); jsonData = parseJsonKeyValuePairs(webContents); logger.debug(jsonData); } catch (IOException e) { logger.error("Failed to load price for: " + twistedBowId, e); } Which outputs: All that's missing is the parsing and possibly even a wrapper class. But the content's there. The other functions (downloadWebpage & parseJsonKey: /** * Download all contents from a URL * * @param address * - Web site address * @return Contents * @throws IOException * Error input/output */ public static String downloadWebpage(String address) throws IOException { String result = ""; String nextLine = null; try ( InputStream inputStream = new URL(address).openStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); ) { while ((nextLine = bufferedReader.readLine()) != null) { result += nextLine; } } return result; } /** * Simple JSON parser to extract key & value pairs. * * Note: values must be numbers. * * @param input * - JSON input * @return Mapped contents */ public static Map<String, String> parseJsonKeyValuePairs(String input) { final Map<String, String> result = new HashMap<>(); final Pattern pattern = Pattern.compile(".*?\"(.*?)\":(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); final Matcher matcher = pattern.matcher(input); while (matcher.find()) { result.put(matcher.group(1), matcher.group(2)); } return result; } I wrote my own JSON parser, but it's very simple and will only work where the values are numeric. I'm staying away from any libraries that aren't packaged with Java. Also, don't suppress errors. If the errors are thrown at a point in the code where it can't be logged out, just keep throwing it on up the stack until it reaches a point where it can. Errors are useful; if you suppress them, then you're going to have a bad time.
×
×
  • Create New...