如何解决Flutter/Dart http POST 重定向通过 GET 发送正文
我正在尝试将数据POST
传输到 Google 表格网络应用。
当我POST
向端点发送数据时,我会收到状态 302。如果我将数据 POST
发送到新位置,我会收到状态 405。
当我使用 Postman 时它可以工作,但我无法在 Flutter 中使用它。
Postman 收到 302,然后发送一个 GET
请求,其中包含我的 JSON 负载作为正文。这似乎违反了 GET
规范,但确实有效。
我尝试了 flutter HTTP 包和 DIO,两者都不让我通过 GET
发送正文。我尝试了带和不带 followRedirects
的 DIO。
如何在 Flutter 中通过 GET
发送正文?
解决方法
您可以使用 dio 请求代替
await dio.request(
"/test",data: {"id": 12,"name": "xx"},options: Options(method: "GET"),);
,
使用 dio 配置您的选项小部件,如下所示以避免第一次请求的重定向:
Options(
followRedirects: false,validateStatus: (status) {
return status < 500;
}),
GET 不用于发送数据,请参阅 https://stackoverflow.com/a/60312720/10286880。
如果您想通过 POST 发送它们,您可以执行以下操作:
final res = await dio.post(
'[YOUR ADRESS]',data: json.encode([YOUR BODY AS MAP])
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。