title: HttpURLConnection GET call with parameters not working
body: <p>I have a very simple code which is not working.</p>
  
  <p><strong>Class HttoCon:</strong></p>
  
  <pre><code>package test;
  
  import java.io.BufferedReader;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.net.URLConnection;
  import java.net.URLEncoder;
  
  public class HttpCon {
  
  
  public static void main(String[] args) {
      try {
          sendGet();
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
      // HTTP GET request
          private static void sendGet() throws Exception {
  
              String url = "http://myweb.com/public/resource/data/stream";
  
              URL obj = new URL(url);
              HttpURLConnection con = (HttpURLConnection) obj.openConnection();
  
              // optional default is GET
              con.setRequestMethod("GET");
  
  
              //add request header
              con.setRequestProperty("begin", "1430295300000");
              con.setRequestProperty("end", "1430297279988");
              con.setRequestProperty("id", "140621");
              con.setRequestProperty("time", "FIFTEEN_MINUTE");
  
              int responseCode = con.getResponseCode();
              System.out.println("\nSending 'GET' request to URL : " + url);
              System.out.println("Response Code : " + responseCode);
  
              BufferedReader in = new BufferedReader(
                      new InputStreamReader(con.getInputStream()));
              String inputLine;
              StringBuffer response = new StringBuffer();
  
              while ((inputLine = in.readLine()) != null) {
                  response.append(inputLine);
              }
              in.close();
  
              //print result
              System.out.println(response.toString());
  
          }
  }
  </code></pre>
  
  <p><strong>Error Trace:</strong></p>
  
  <pre><code>{"fault":{"exceptionType":"MissingServletRequestParameterException","host":"12.205.101.123","cause":"Required Long parameter 'id' is not present","status":"400","query":"/public/resource/data/stream","stackTrace":"org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'id' is not present\n\tat org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.raiseMissingParameterException(AnnotationMethodHandlerAdapter.java:774)\n\tat org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestParam(HandlerMethodInvoker.java:509)\n\tat 
  </code></pre>
  
  <p><strong>NOTE:</strong></p>
  
  <p>If I hit the url directly in browser it works fine.</p>
  
  <p><a href="http://myweb.com/public/resource/data/stream?begin=1430295300000&amp;end=1430297279988&amp;id=140621&amp;time=FIFTEEN_MINUTE" rel="noreferrer">http://myweb.com/public/resource/data/stream?begin=1430295300000&amp;end=1430297279988&amp;id=140621&amp;time=FIFTEEN_MINUTE</a></p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>Using curl:</p>
  
  <pre><code>curl -X GET http://myweb.com/public/resource/data/stream?begin=1430295300000&amp;end=1430297279988&amp;id=140621&amp;time=FIFTEEN_MINUTE
  </code></pre>
  
  <p>Above curl doesn't work and the exception is same - </p>
  
  <pre><code>curl -X GET 'http://myweb.com/public/resource/data/stream?begin=1430295300000&amp;end=1430297279988&amp;id=140621&amp;time=FIFTEEN_MINUTE'
  </code></pre>
  
  <p>This curl works fine.</p>