为啥我的 response.body 为空,而我的后端设备令牌为空?

Posted

技术标签:

【中文标题】为啥我的 response.body 为空,而我的后端设备令牌为空?【英文标题】:why my response.body is empty and my device token in my backend is null?为什么我的 response.body 为空,而我的后端设备令牌为空? 【发布时间】:2021-10-11 12:01:30 【问题描述】:

我正在将 Laravel 用于我的应用后端,并希望向我的 Flutter 应用发送推送通知 我的问题是为什么响应正文为空而后端的设备令牌为空?

static Future<http.Response> sendDeviceToken(String FCM_token) async

    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    int id=sharedPreferences.getInt("id");
    String myUrl = "$serverUrl/FCM";
    var resp = await http.post(Uri.encodeFull(myUrl),
      headers: <String, String>
        "Accept": "application/json",
      ,
      body: jsonEncode(<String, String>
        'FCM_token': FCM_token,
        'id' : id.toString(),
      ),
    );
    print("res.statusCode: $resp.statusCode");
    print("res.body: $resp.body");
    return resp;
  

我在这个函数中打印 FCM_token 并且打印正确。

【问题讨论】:

您正在正确捕获令牌,只需将其发送到您的后端,它是一个字符串。使用用户 ID 发送并存储它们,然后您可以使用它们向此设备发送通知。 听起来像是一个答案@HuthaifaMuayyad ;-) 一如既往,满满的爱@FrankvanPuffelen 【参考方案1】:

您正在正确捕获 FCM 令牌,只需使用 post 方法将其发送到您的后端,并准备好在您的后端捕获此帖子。 FCMtoken 是一个字符串。

例如,您也可以将其与用户 ID 一起发送,存储它们,然后您可以使用它们向该用户发送通知,因为您拥有 userId 和他们设备的 FCMtoken。

【讨论】:

如何使用post方式发送? @Huthaifa 将其发送到您的服务器,以便您的服务器可以将其存储在您的数据库中。从你的颤振应用程序中写一个简单的post 请求。如果你不知道怎么做,我建议你从那里开始寻找:) check here. 运行这段代码会发生什么?问题出在哪里? resp.body 打印为空,后端值为空

以上是关于为啥我的 response.body 为空,而我的后端设备令牌为空?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 response.body 不能用 xlsx 格式读取

解决Okhttp3使用post请求后的response.body()为空

为啥 php 5.3 而我的 xampp 是 php 7?

为啥我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录?

为啥sklearn kNN分类器运行得这么快,而我的训练样本和测试样本的数量很大

为啥我的位置为空? - 安卓