- package net.jrtechs.www.utils;
-
- import net.jrtechs.www.SteamAPI.ConnectionErrors;
- import net.jrtechs.www.SteamAPI.SteamConnectionException;
-
- import java.io.*;
- import java.net.HttpURLConnection;
- import java.net.URL;
-
- /**
- * Class which retrieves contents of a website as html
- *
- * @author Jeffery Russell 5-25-18
- */
- public class WebScraper
- {
- /**
- * Grabs the contents of a website as a string
- *
- * @param link to open
- * @return source code of website as a single string
- */
- public static String getWebsite(String link) throws SteamConnectionException
- {
- try
- {
- URL url = new URL(link);
- HttpURLConnection connection = (HttpURLConnection)url.openConnection();
- connection.setRequestMethod("GET");
- connection.connect();
-
- int code = connection.getResponseCode();
-
- switch (code)
- {
- case 401:
- throw new SteamConnectionException(ConnectionErrors.RESTRICTED);
- case 500:
- throw new SteamConnectionException(ConnectionErrors.CONNECTION);
- default:
- }
-
- BufferedReader br = new BufferedReader(
- new InputStreamReader(url.openStream())
- );
- return WebScraper.getBufferedReaderData(br);
- }
- catch (SteamConnectionException e)
- {
- throw e;
- }
- catch (Exception e)
- {
- throw new SteamConnectionException(ConnectionErrors.CONNECTION);
- }
- }
-
-
- /**
- * Gets contents of a post request sent to a web server
- *
- * @param link to open
- * @param postData to send
- * @return source code of website as a string
- */
- public static String getPostResponse(String link, String postData)
- {
- try
- {
- URL url = new URL(link);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setDoOutput(true);
- conn.setRequestMethod("POST");
-
- OutputStream os = conn.getOutputStream();
- os.write(postData.getBytes());
- os.flush();
-
- BufferedReader br = new BufferedReader(
- new InputStreamReader(conn.getInputStream())
- );
- return WebScraper.getBufferedReaderData(br);
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
-
- return "";
- }
-
-
- /**
- * Helper method for getPostResponse() and getWebsite()
- * Slams all contents of a buffered reader into a single string.
- *
- * @param br
- * @return contents of buffered reader
- * @throws IOException -- with br.readLine()
- */
- private static String getBufferedReaderData(BufferedReader br)
- throws IOException {
- String html = "";
- String line;
- while ((line = br.readLine()) != null)
- {
- html += line;
- }
- return html;
- }
- }
|