问题描述
我正在尝试将数据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])
);