title: Java Login 'Exception Error'- what does it mean?
body: <p>Im trying to automate a login using java, and have used this example: <a href="http://www.mkyong.com/java/how-to-automate-login-a-website-java-example/" rel="nofollow">http://www.mkyong.com/java/how-to-automate-login-a-website-java-example/</a>   to help me do it with another website. The code is below, and so is the output. My question is, what does the error mean, and how do I fix it?</p>
  
  <pre><code>public class testing {
  
    private List&lt;String&gt; cookies;
    private HttpsURLConnection conn;
  
    private final String USER_AGENT = "Mozilla/5.0";
  
    public static void main(String[] args) throws Exception {
  
  String url = "https://www.studentinvestor.org/secure/login.php?dest=http://www.studentinvestor.org/stock-list.php";
  String companies = "http://www.studentinvestor.org/stock-list.php";
  
  testing http = new testing();
  
  // make sure cookies is turn on
  CookieHandler.setDefault(new CookieManager());
  
  // 1. Send a "GET" request, so that you can extract the form's data.
  String page = http.GetPageContent(url);
  String postParams = http.getFormParams(page, "username", ",password");
  
  // 2. Construct above post's content and then send a POST request for
  // authentication
  http.sendPost(url, postParams);
  
  // 3. success then go to gmail.
  String result = http.GetPageContent(companies);
  System.out.println(result);
    }
  
    private void sendPost(String url, String postParams) throws Exception {
  
  URL obj = new URL(url);
  conn = (HttpsURLConnection) obj.openConnection();
  
  // Acts like a browser
  conn.setUseCaches(false);
  conn.setRequestMethod("POST");
  conn.setRequestProperty("Host", "www.studentinvestor.org");
  conn.setRequestProperty("User-Agent", USER_AGENT);
  conn.setRequestProperty("Accept",
      "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  conn.setRequestProperty("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
  for (String cookie : this.cookies) {
      conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
  }
  conn.setRequestProperty("Connection", "keep-alive");
  conn.setRequestProperty("Content-Type", "text/html");
  
  
  conn.setDoOutput(true);
  conn.setDoInput(true);
  
  // Send post request
  DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
  wr.writeBytes(postParams);
  wr.flush();
  wr.close();
  
  int responseCode = conn.getResponseCode();
  System.out.println("\nSending 'POST' request to URL : " + url);
  System.out.println("Post parameters : " + postParams);
  System.out.println("Response Code : " + responseCode);
  
  BufferedReader in = 
           new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String inputLine;
  StringBuffer response = new StringBuffer();
  
  while ((inputLine = in.readLine()) != null) {
      response.append(inputLine);
  }
  in.close();
  // System.out.println(response.toString());
  
    }
  
    private String GetPageContent(String url) throws Exception {
  
  URL obj = new URL(url);
  conn = (HttpsURLConnection) obj.openConnection();
  
  // default is GET
  conn.setRequestMethod("GET");
  
  conn.setUseCaches(false);
  
  // act like a browser
  conn.setRequestProperty("User-Agent", USER_AGENT);
  conn.setRequestProperty("Accept",
      "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
  conn.setRequestProperty("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
  if (cookies != null) {
      for (String cookie : this.cookies) {
          conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
      }
  }
  int responseCode = conn.getResponseCode();
  System.out.println("\nSending 'GET' request to URL : " + url);
  System.out.println("Response Code : " + responseCode);
  
  BufferedReader in = 
          new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String inputLine;
  StringBuffer response = new StringBuffer();
  
  while ((inputLine = in.readLine()) != null) {
      response.append(inputLine);
  }
  in.close();
  
  // Get the response cookies
  setCookies(conn.getHeaderFields().get("Set-Cookie"));
  
  return response.toString();
  
    }
  
    public String getFormParams(String html, String username, String password)
      throws UnsupportedEncodingException {
  
  System.out.println("Extracting form's data...");
  
  Document doc = Jsoup.parse(html);
  
  // Google form id
  Element loginform = doc.getElementById("loginsubmitted");
  Elements inputElements = loginform.getElementsByTag("label");
  List&lt;String&gt; paramList = new ArrayList&lt;String&gt;();
  for (Element inputElement : inputElements) {
      String key = inputElement.attr("name");
      String value = inputElement.attr("value");
  
      if (key.equals("team-name"))
          value = username;
      else if (key.equals("team-password"))
          value = password;
      paramList.add(key + "=" + URLEncoder.encode(value, "UTF-8"));
      }
  
  // build parameters list
  StringBuilder result = new StringBuilder();
  for (String param : paramList) {
      if (result.length() == 0) {
          result.append(param);
      } else {
          result.append("&amp;" + param);
      }
  }
  return result.toString();
    }
  
    public List&lt;String&gt; getCookies() {
      return cookies;
    }
  
   public void setCookies(List&lt;String&gt; cookies) {
  this.cookies = cookies;
    }
  
  }
  </code></pre>
  
  <p>OUTPUT</p>
  
  <pre><code>Sending 'GET' request to URL : https://www.studentinvestor.org/secure/login.php?    dest=http://www.studentinvestor.org/stock-list.php
  Response Code : 200
  Extracting form's data...
  
  Sending 'POST' request to URL : https://www.studentinvestor.org/secure/login.php?   dest=http://www.studentinvestor.org/stock-list.php
  Post parameters : 
  Response Code : 200
  Exception in thread "main" java.lang.ClassCastException:    sun.net.www.protocol.http.HttpURLConnection cannot be cast to   javax.net.ssl.HttpsURLConnection
      at testing.GetPageContent(testing.java:98)
    at testing.main(testing.java:44)
  </code></pre>
  
  <p>Therefore the error message is:</p>
  
  <pre><code>Exception in thread "main" java.lang.ClassCastException:    sun.net.www.protocol.http.HttpURLConnection cannot be cast to   javax.net.ssl.HttpsURLConnection
          at testing.GetPageContent(testing.java:98)
        at testing.main(testing.java:44)
  </code></pre>