为啥我的 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()为空
为啥我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录?