2017-01-24 1 views
0

Я хочу, чтобы отправить запрос на Firebase URL с данными объекта JSON и заголовками из моей деятельности,Отправка сообщение запрос на URL с объектом JSON данные и заголовками из Android

Я проверил URL от клиента покоя и я нахожусь в успех там, я получаю правильный ответ, но когда я называю это от андроида я не смог получить ответ:

вот мой код:

public static void pushFCMNotification(String userDeviceIdKey) throws  Exception{ 

     String authKey = AUTH_KEY_FCM; // You FCM AUTH key 
     String FMCurl = API_URL_FCM; 

     URL url = new URL(FMCurl); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

     conn.setUseCaches(false); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 

     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Content-Type","application/json"); 
     conn.setRequestProperty("Authorization","key="+authKey); 
     Log.e("authkey==> ",authKey+""); 

     JSONObject json = new JSONObject(); 
     json.put("to",userDeviceIdKey.trim()); 
     Log.e("deviceidkey==> ",userDeviceIdKey.trim()+""); 

     JSONObject info = new JSONObject(); 
     info.put("title", "Notificatoin Title"); // Notification title 
     info.put("body", "Hello Test notification"); // Notification body 
     json.put("notification", info); 

     OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
     wr.write(json.toString()); 
     wr.flush(); 
     conn.getInputStream(); 
    } 

это структура JSON я хочу отправить с URL

enter image description here

я не получил каких-либо исключений и в случае успеха этого запроса я должен получить уведомление о моем устройстве, которое hapening от клиента покоя, но не от андроида,

любезно проверить, где я делаю ошибку и как можно проверить ответ моего запроса

ответ

1

Я решил проблему, я дебютировал json в Logcat и обнаружил, что она не была правильно структурирована после того, как она исправилась, и она начинает работать, Letme Mention я специально использую это для уведомления firebase через api.

я сделал так:

public static String makeRequest(String id) throws JSONException { 
     HttpURLConnection urlConnection; 
     JSONObject json = new JSONObject(); 
     JSONObject info = new JSONObject(); 
     info.put("title", "Notification Title"); // Notification title 
     info.put("body", "Notification body"); // Notification body 
     info.put("sound", "mySound"); // Notification sound 
     json.put("notification", info); 
     json.put("to","INSTANCE ID FETCHED FOR SIGNLE DEVICE HERE"); 
     Log.e("deviceidkey==> ",id+""); 
     Log.e("jsonn==> ",json.toString()); 
     String data = json.toString(); 
     String result = null; 
     try { 
      //Connect 
      urlConnection = (HttpURLConnection) ((new URL("https://fcm.googleapis.com/fcm/send").openConnection())); 
      urlConnection.setDoOutput(true); 
      urlConnection.setRequestProperty("Content-Type", "application/json"); 
      urlConnection.setRequestProperty("Authorization", "key=YOUR FIREBASE SERVER KEY"); 
      urlConnection.setRequestMethod("POST"); 
      urlConnection.connect(); 

      //Write 
      OutputStream outputStream = urlConnection.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
      writer.write(data); 
      writer.close(); 
      outputStream.close(); 

      //Read 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8")); 

      String line = null; 
      StringBuilder sb = new StringBuilder(); 

      while ((line = bufferedReader.readLine()) != null) { 
       sb.append(line); 
      } 

      bufferedReader.close(); 
      result = sb.toString(); 

     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return result; 
    } 
Смежные вопросы