【发布时间】:2016-08-21 20:48:01
【问题描述】:
我正在尝试向 Firebase 服务器发送 FCM 请求,正如 FCM 文档所说,它应该是带有 JSON 数据的 POST 请求。这是示例。
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
那么任何人都可以给出一个正确的代码来发送带有这个 JSON 数据的 POST 请求吗?
这是我尝试过的,但它不起作用
AsyncT.java
package com.example.artin.pushnotifications;
import android.os.AsyncTask;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
class AsyncT extends AsyncTask<Void,Void,Void> {
@Override
protected Void doInBackground(Void... params) {
try {
URL url = new URL("https://fcm.googleapis.com/fcm/send"); //Enter URL here
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod("POST"); // here you are telling that it is a POST request, which can be changed into "PUT", "GET", "DELETE" etc.
httpURLConnection.setRequestProperty("Content-Type", "application/json"); // here you are setting the `Content-Type` for the data you are sending which is `application/json`
httpURLConnection.setRequestProperty("Authorization","key=AIzaSyDZx9l_Izta9AjVS0CX70ou8OjbDVVGlHo");
httpURLConnection.connect();
JSONObject jsonObject = new JSONObject();
JSONObject param = new JSONObject();
param.put("Hii","there");
jsonObject.put("data",param);
jsonObject.put("to", "dXazhmeFSSU:APA91bG23o75zeNOCb7pY-OCQG4BsGbY-YZrSnDrvLWv1");
DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
wr.writeBytes(jsonObject.toString());
wr.flush();
wr.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
当按下按钮时我执行它
AsyncT asyncT = new AsyncT();
asyncT.execute();
【问题讨论】:
-
这么多重复,你还没有提供你已经尝试过的东西。
-
Volley很好,但OkHttp也很好。见这里stackoverflow.com/a/36160967/2308683 -
它在邮递员中有效,但在代码中无效
-
cricket_007 OkHttp 终于成功了。谢谢)
标签: android http-post firebase-cloud-messaging android-json