Flutter/Dart http POST 通过 GET 重定向发送正文

Flutter/Dart http POST redirect send body via GET

我正在尝试 POST 数据到 Google 表格网络应用程序。

当我 POST 向端点发送数据时,我得到状态 302。如果我然后 POST 将数据发送到新位置,我将获得状态 405。

当我使用 Postman 时它可以工作,但我无法让它在 Flutter 中工作。

邮递员收到 302,然后发送一个 GET 请求,其中我的 JSON 有效载荷作为正文。这似乎违反了 GET 规范,但它有效。

我尝试了 flutter HTTP 包和 DIO,两者都不让我通过 GET 发送正文。我试过带和不带 followRedirects.

的 DIO

如何通过 GET 在 flutter 中发送正文?

使用 dio 配置您的选项小部件,如下所示以避免第一个请求的重定向:

Options(
        followRedirects: false,
        validateStatus: (status) {
          return status < 500;
        }),

GET 不是为了发送数据,请参阅

如果你想用 POST 发送它们,你可以执行以下操作:

final res = await dio.post(
    '[YOUR ADRESS]',
    data: json.encode([YOUR BODY AS MAP])
  );

您可以改用 dio 请求

await dio.request(
  "/test",
  data: {"id": 12, "name": "xx"},
  options: Options(method: "GET"),
);