服务器返回 HTTP 响应代码:openConnection() 后 400

迈克

我正在尝试使用 Firebase Cloud Messaging HTTP v1,但是当我在调用 openConnection() 后获得响应代码时,会返回“404”错误代码

URL url = new URL(FCM_SEND_ENDPOINT);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
System.out.println("status:" + httpURLConnection.getResponseCode());

我检查了 URL 中的项目 ID,应该是 Firebase 控制台中的项目 ID(设置 --> 常规 --> 项目 ID)

Firebase 控制台:

Firebase 控制台

https://fcm.googleapis.com/v1/projects/xxxxxxxxx/messages:send

更新于 29-11-2017

就我而言,当我尝试连接到 FCM 时,我在 JSON 字符串中使用了虚拟令牌,这会导致返回“404”错误代码。
详情可以参考Zaigham Raza 提供 的链接 “HTTP 连接服务器参考和响应代码”
使用 JSON 字符串中的真实令牌后,我可以在我的设备上收到通知消息。

错误的:
{"message":{"notification":{"title":"notification title","body":"message body"},"token":"123"}}

正确的:
{"message":{"notification":{"title":"notification title","body":"message body"},"token":"dwB0YqF......"}}

这里是示例代码

public static HttpURLConnection getHTTPConn() throws Exception{
    URL url = new URL(FCM_SEND_ENDPOINT);
    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
    String token = getAccessToken();
    httpURLConnection.setRequestProperty("Authorization", "Bearer " + token);
    httpURLConnection.setRequestProperty("Content-Type", "application/json; UTF-8");
    httpURLConnection.setDoOutput(true);
    return httpURLConnection;
}
//The following code to retrieve the token with Google API Client Library <https://firebase.google.com/docs/cloud-messaging/auth-server>
private static String getAccessToken() throws IOException {
    GoogleCredential googleCredential = GoogleCredential
    .fromStream(new FileInputStream("service-account.json"))
    .createScoped(Arrays.asList(SCOPES));
    googleCredential.refreshToken();
    return googleCredential.getAccessToken();
}
public static void sendPushNotificationV1(){
    String result = "";
    try{
        HttpURLConnection conn = getHTTPConn();
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(json.toString());
        wr.flush();
        BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

        String output;
        while ((output = br.readLine()) != null) {
            System.out.println(output);
        }
        result = "SUCCESS";
    } catch (Exception e) {
        e.printStackTrace();
    }
}

享受~

扎格姆·拉扎

检查 JSON 消息格式是否正确并包含有效字段(例如,确保传入正确的数据类型)。请阅读底部的此链接,您有响应代码和问题。HTTP 连接服务器参考和响应代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java.io.IOException:服务器返回的HTTP响应代码:URL的400

来自分类Dev

服务器返回URL的HTTP响应代码:400:java.io.IOException

来自分类Dev

如果是HTTP 400响应代码,则在调用Web服务后获得错误消息

来自分类Dev

curl从服务器下载图像返回http_ 400

来自分类Dev

Java服务器返回的HTTP响应代码:401

来自分类Dev

服务器返回HTTP响应代码:URL的405

来自分类Dev

服务器返回的HTTP响应代码:URL的503

来自分类Dev

服务器返回HTTP响应代码:URL的405

来自分类Dev

从服务器返回的错误 HTTP 响应。代码 500

来自分类Dev

Google Map api“路线”返回的HTTP响应代码:400

来自分类Dev

expressjs服务器http请求返回空响应

来自分类Dev

WCF IIS服务文件流式传输远程服务器返回意外响应:(400)错误的请求。

来自分类Dev

WPF SignalR服务器返回HTTP 400错误请求(无效的主机地址)

来自分类Dev

服务器返回HTTP响应代码:403(适用于URL)Google Translate API

来自分类Dev

java.io.IOException:服务器返回的HTTP响应代码:502

来自分类Dev

服务器返回的HTTP响应代码:GET请求的URL为500

来自分类Dev

java.io.IOException:服务器返回的HTTP响应代码:URL的403

来自分类Dev

java.io.IOException:服务器返回的HTTP响应代码:502

来自分类Dev

创建Gradle项目时出现错误:服务器返回了HTTP响应代码:403

来自分类Dev

更新postgresql数据库:服务器返回URL的HTTP响应代码:405

来自分类Dev

服务器返回 HTTP 响应代码:415 不支持的媒体类型

来自分类Dev

Java Android FCM 向用户服务器发送消息返回 HTTP 响应代码

来自分类Dev

服务器返回 HTTP 响应代码:URL instagram 访问令牌 api 为 405

来自分类Dev

PayPal付款请求返回HTTP 400响应

来自分类Dev

与GCM通信时返回HTTP代码400

来自分类Dev

与GCM通信时返回HTTP代码400

来自分类Dev

贝宝付款-HTTP响应代码400

来自分类Dev

将XElement传递给Webservice。远程服务器返回意外响应:(400)错误的WebService请求

来自分类Dev

远程服务器返回了意外的响应:(400)错误的请求WCF REST

Related 相关文章

  1. 1

    java.io.IOException:服务器返回的HTTP响应代码:URL的400

  2. 2

    服务器返回URL的HTTP响应代码:400:java.io.IOException

  3. 3

    如果是HTTP 400响应代码,则在调用Web服务后获得错误消息

  4. 4

    curl从服务器下载图像返回http_ 400

  5. 5

    Java服务器返回的HTTP响应代码:401

  6. 6

    服务器返回HTTP响应代码:URL的405

  7. 7

    服务器返回的HTTP响应代码:URL的503

  8. 8

    服务器返回HTTP响应代码:URL的405

  9. 9

    从服务器返回的错误 HTTP 响应。代码 500

  10. 10

    Google Map api“路线”返回的HTTP响应代码:400

  11. 11

    expressjs服务器http请求返回空响应

  12. 12

    WCF IIS服务文件流式传输远程服务器返回意外响应:(400)错误的请求。

  13. 13

    WPF SignalR服务器返回HTTP 400错误请求(无效的主机地址)

  14. 14

    服务器返回HTTP响应代码:403(适用于URL)Google Translate API

  15. 15

    java.io.IOException:服务器返回的HTTP响应代码:502

  16. 16

    服务器返回的HTTP响应代码:GET请求的URL为500

  17. 17

    java.io.IOException:服务器返回的HTTP响应代码:URL的403

  18. 18

    java.io.IOException:服务器返回的HTTP响应代码:502

  19. 19

    创建Gradle项目时出现错误:服务器返回了HTTP响应代码:403

  20. 20

    更新postgresql数据库:服务器返回URL的HTTP响应代码:405

  21. 21

    服务器返回 HTTP 响应代码:415 不支持的媒体类型

  22. 22

    Java Android FCM 向用户服务器发送消息返回 HTTP 响应代码

  23. 23

    服务器返回 HTTP 响应代码:URL instagram 访问令牌 api 为 405

  24. 24

    PayPal付款请求返回HTTP 400响应

  25. 25

    与GCM通信时返回HTTP代码400

  26. 26

    与GCM通信时返回HTTP代码400

  27. 27

    贝宝付款-HTTP响应代码400

  28. 28

    将XElement传递给Webservice。远程服务器返回意外响应:(400)错误的WebService请求

  29. 29

    远程服务器返回了意外的响应:(400)错误的请求WCF REST

热门标签

归档