title: POST request to REST API on Android not getting parameters
body: <p>I'm building a webapp with an associated REST API in the backend.</p>
  
  <p>The API made with django-rest-framework is working, I can do the following from the command line: </p>
  
  <pre><code>$ http http://localhost:8000/API/api-token-auth/ username=ortho1 password=123456
  
  HTTP/1.0 200 OK
  Allow: POST, OPTIONS
  Content-Type: application/json
  Date: Wed, 11 May 2016 12:43:05 GMT
  Server: WSGIServer/0.2 CPython/3.5.1+
  Vary: Cookie
  X-Frame-Options: SAMEORIGIN
  
  {
      "token": "4d6e32726e321448fc212242fc03a3fa84c80510"
  }
  </code></pre>
  
  <p>But from my Android App I try to do the following:</p>
  
  <pre><code>protected String doInBackground(String... urls) {
      // Starting the request
      URL url;
      HttpURLConnection urlConnection = null;
      try {
  
          url = new URL("http://10.0.2.2:8000/API/api-token-auth/");
          urlConnection = (HttpURLConnection) url.openConnection();
  
               /* optional request header */
          urlConnection.setRequestProperty("Content-Type", "application/json");
          urlConnection.setRequestProperty("Accept", "application/json");
  
              /* for GET request */
          urlConnection.setRequestMethod("POST");
  
          String urlParameters =
                  "username=" + URLEncoder.encode("ortho1", "UTF-8") +
                          "&amp;password=" + URLEncoder.encode("123456", "UTF-8");
  
          urlConnection.setRequestProperty("Content-Length", "" +
                  Integer.toString(urlParameters.getBytes().length));
  
          urlConnection.setDoOutput(true);
          urlConnection.setDoInput(true);
  
          DataOutputStream wr = new DataOutputStream (
                  urlConnection.getOutputStream ());
          wr.writeBytes (urlParameters);
          wr.flush ();
          wr.close ();
  
          InputStream inputStream;
          if (urlConnection.getResponseCode() == 200) { // 2xx code means success
              inputStream = urlConnection.getInputStream();
          } else {
  
              inputStream = urlConnection.getErrorStream();
  
          }
  
          inputStream = new BufferedInputStream(inputStream);
  
  
          String response = convertInputStreamToString(inputStream);
  
          Log.i("Request", response);
  
          return response;
  
      } catch (Exception e) {
  
          e.printStackTrace();
          return null;
  
      } finally {
          if(urlConnection != null) {
              urlConnection.disconnect();
          }
      }
  
  }
  
  private String convertInputStreamToString(InputStream inputStream) throws IOException {
  
      BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
  
      String line = "";
      String result = "";
  
      while((line = bufferedReader.readLine()) != null){
          result += line;
      }
  
          /* Close Stream */
      if(null!=inputStream){
          inputStream.close();
      }
  
      return result;
  }
  </code></pre>
  
  <p>I get in the console as response from the server:</p>
  
  <pre><code>{"detail":"JSON parse error - Expecting value: line 1 column 1 (char 0)"} 
  </code></pre>
  
  <p>as result.</p>
  
  <p>What could I be doing wrong?</p>