无法在 Flutter 中为 dio 中的 post 方法添加标题

Vex*_*xal 14 flutter dio

我正在使用dio: ^3.0.4。任何人请帮我找到添加标题的解决方案。这是我的代码:

FormData formData = 
    new FormData.fromMap({"files": await MultipartFile.fromFile(filePath.path, filename: 'photo')
          });
Run Code Online (Sandbox Code Playgroud)
  Response response = await dio.post("***********",
    data: formData,
    onSendProgress: (int sent, int total) {
      print("$sent $total");
    },
    options: Options(
      headers: {
        "authorization": "*************"
      },
      followRedirects: false,
      validateStatus: (status) {
        return status <= 500;
      }
    ),
  );
Run Code Online (Sandbox Code Playgroud)

当我打印标题时。

打印(响应。标题);

结果:

颤振:内容类型:文本/html;charset=UTF-8 连接:关闭缓存控制:无缓存,私有传输编码:分块日期:2019 年 11 月 7 日星期四 14:29:02 GMT 服务器:Apache/2.4.18

Dha*_*ata 20

如果我们传递小的 case键值,Dio 库键在我的情况下工作得很好

例如,

Dio dio = new Dio();
dio.options.headers['content-Type'] = 'application/json';
dio.options.headers["authorization"] = "token ${token}";
response = await dio.post(url, data: data);                                                      
Run Code Online (Sandbox Code Playgroud)

确保你在小写的情况下写密钥,这对我有用。

  • 没有必要将密钥写在**小写**中。它只是区分大小写。 (2认同)

Jas*_* PJ 20

如果您在项目中使用 di 并且 dioclient 是单例,这就是向调用添加授权的方式。

final response = await _dioClient.get(Endpoints.getDashboard,
          queryParameters{'shopId':int.parse(shopId)},
          options: Options(
            headers: {
              "authorization": "Bearer <your token>",
            },
          ),
        );
Run Code Online (Sandbox Code Playgroud)


chu*_*han 14

有一些类似的问题没有答案
但是以下对我
有用请使用以下代码片段来设置 headers 属性

  Dio dio = new Dio();
  dio.options.headers["Authorization"] = "Bearer ${token}";
  response = await dio.post(url, data: data);
Run Code Online (Sandbox Code Playgroud)