对服务器的 Http.post 请求不会随它一起发送正文。在服务器端,请求的主体是空的。我在下面添加了代码
Posted
技术标签:
【中文标题】对服务器的 Http.post 请求不会随它一起发送正文。在服务器端,请求的主体是空的。我在下面添加了代码【英文标题】:Http.post request to server doesn't send the body with it in flutter. On the server side, the body of request is empty. I have added the code below 【发布时间】:2021-05-09 13:13:06 【问题描述】:Future<User> authUser(String username, String password) async (
Map data =
'username' : username,
'password' : password,
;
var authUserResp = await http.post (
new Uri.http('localhost:8000','apiquery'),
headers:
'Content-type' : 'application/json',
'Accept' : 'application/json',
,
body: json.encode(data),
);
print(authUserResp.statusCode);
return User.fromJson(jsonDecode(authUserResp.body)['data']);
)
Postman 中的 post 操作成功的状态码是 201 表示已创建。但是在颤振中,返回的状态码是 200。在本地 api 服务器上,请求的主体是一个空映射,如 。
【问题讨论】:
【参考方案1】:data
的定义不是Map
。
尝试修正地图,看看是否有帮助:
Map data =
'username': username,
'password': password,
;
【讨论】:
【参考方案2】:函数中的参数是“密码”而不是“密码正确”
【讨论】:
是的,这是问题中的错字。在代码中是正确的。 我已经更正了。答案没有解决。我的问题 无法访问我的计算机 你用什么来获取用户名和密码的数据? 一个表单,将两个字段作为字符串返回【参考方案3】:您的函数无效。
这里是代码。我只是做了一些更改。
Future<Usert> authUser(String username, String password) async
Map<String, dynamic> data =
'username': username,
'password': password,
;
var authUserResp = await http.post(
new Uri.http('localhost:8000', 'apiquery'),
headers:
'Content-type': 'application/json',
'Accept': 'application/json',
,
body: json.encode(data),
);
print(authUserResp.statusCode);
return User.fromJson(jsonDecode(authUserResp.body)['data']);
【讨论】:
发布后检查控制台,如果有任何错误,请在此处发布。以上是关于对服务器的 Http.post 请求不会随它一起发送正文。在服务器端,请求的主体是空的。我在下面添加了代码的主要内容,如果未能解决你的问题,请参考以下文章
Http post请求数据分析 --作者, 你的这个需求我可以做, 我在平台上无法给你发消息和接收你的任务, 所以,如果你看到这个信息, 可以联系我.