我正在使用 dio:^ 3.0.4 。任何人都可以帮助我找到添加标头的解决方案。这是我的代码:
FormData formData =
new FormData.fromMap({"files": await MultipartFile.fromFile(filePath.path, filename: 'photo')
});
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;
}
),
);
当我打印标题时。
print(response.headers);
结果:
flutter:内容类型:text / html; charset = UTF-8连接:关闭 缓存控制:无缓存,私有传输编码:分块日期:周四, 2019年11月7日14:29:02 GMT服务器:Apache / 2.4.18
答案 0 :(得分:1)
例如,
Dio dio = new Dio();
dio.options.headers['content-Type'] = 'application/json';
dio.options.headers["authorization"] = "token ${token}";
response = await dio.post(url, data: data);
确保您以小写的形式写密钥,对我来说这是有效的。
答案 1 :(得分:1)
尝试不同的方法将参数传递给标头后,这对我来说很有用
Dio dio = new Dio();
dio.options.contentType = ContentType("application","x-www-form-urlencoded");
dio.options.headers[HttpHeaders.authorizationHeader] ="Basic $clientCredentials";
答案 2 :(得分:1)
这可能是错误,因为我无法将其设置为小写的 content-type
。
Content-Type
有效。
options.headers = {'Content-Type': 'application/json', ...request.headers};
答案 3 :(得分:0)
有些类似的问题没有答案
但是以下对我有用的工作
请使用以下代码段设置标头属性
Dio dio = new Dio();
dio.options.headers["Authorization"] = "Bearer ${token}";
response = await dio.post(url, data: data);
答案 4 :(得分:0)
dio.options.contentType = ContentType("application","x-www-form-urlencoded") as String;