对服务器的 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请求数据分析 --作者, 你的这个需求我可以做, 我在平台上无法给你发消息和接收你的任务, 所以,如果你看到这个信息, 可以联系我.

angularjs怎么发异步请求

java web项目 在linux服务器发送http post请求 中文乱码

TCP 连接与 HTTP 请求的相关问题

HTTP POST 请求中如何发送参数?

IONIC HTTP post multipart/form-data - 图像与 JSON 一起上传