title: HTTP Post Request: Error 400, Firebase Topic Messaging
body: <p>I'm trying to implement Firebase Topic Messaging in an Android application, and I'm attempting to build a HTTP post request, and I'm receiving a response code of 400. I have looked at various solutions but none of them have seemed to help.</p>
  
  <p>Here is where I call the subclass of AsyncTask: </p>
  
  <pre><code>try{new FirebaseSendMessage().execute("Hello world");}
                  catch (Exception e) {
                      Log.d("Exception", e.toString());
                  }
  </code></pre>
  
  <p>Here is my Async Task class's subclass.</p>
  
  <pre><code>class FirebaseSendMessage  extends AsyncTask&lt;String, Integer, Double&gt; {
  private final static String USER_AGENT = "Mozilla/5.0";
  private final static String AUTH_KEY = "&lt;My firebase authorization key obtained from firebase&gt;";
  
  private Exception exception;
  
  protected Double doInBackground(String... params) {
      try {
          sendRequest(params);
      } catch (Exception e) {
          this.exception = e;
      }
      return null;
  }
  
  protected void onPostExecute(Long l) {
      // TODO: check this.exception
      // TODO: do something with the feed
  }
  
  
  public void sendRequest(String... params) {
      try {
          String urlString = "https://fcm.googleapis.com/fcm/send";
          URL url = new URL(urlString);
          HttpURLConnection con = (HttpURLConnection) url.openConnection();
          con.setDoOutput(true);
          con.setRequestMethod("POST");
          con.setRequestProperty("Content-Type", "application/json");
          con.setRequestProperty("Authorization", "key=" + AUTH_KEY);
          String postJsonData = "{\"to\": \"/topics/news\"\"data\": {\"message\": \"This is a Firebase Cloud Messaging Topic Message!\"}";
          con.setDoOutput(true);
  
          DataOutputStream wr = new DataOutputStream(con.getOutputStream());
          wr.writeBytes(postJsonData);
          wr.flush();
          wr.close();
  
          int responseCode = con.getResponseCode();
          System.out.println("POST Response Code :: " + responseCode);
  
          if (responseCode == HttpURLConnection.HTTP_OK){
              System.out.println("succeeded");
          }
          /*InputStream is = con.getInputStream();
          BufferedReader br = new BufferedReader(new InputStreamReader(is));
          String line = null;
          while ((line = br.readLine()) != null) {
              System.out.println(line);
          }
          //con.disconnect();*/
      }
      catch(IOException e){
          Log.d("exception thrown: ", e.toString());
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Error: <code>I/System.out: POST Response Code :: 400</code></p>
  
  <p>Please let me know if there are additional code snippets required to help me debug. Thanks in advance!</p>