Dio选项contentType与头部"Content-Type"的区别。

5
我想使用 Dio 插件 调用 REST 服务,但一直收到 HTTP 400 响应代码。我认为通过将内容类型和响应类型选项设置为 JSON,我已经做到了一切正确:
Response response = await Dio().get(
    'https://api.example.com/v1/products/$productId',
    queryParameters: {},
    options: Options(
        contentType: ContentType.json,
        responseType: ResponseType.json,
        headers: {'Authorization': 'Bearer $MY_API_KEY'}
    ),
);

然而,事实证明我还需要添加一个Content-Type头:
headers: {'Authorization': 'Bearer $MY_API_KEY'}, 'Content-Type': 'application/json' };

现在我有些困惑 - contentType 选项到底是做什么用的?我以为它类似于手动设置 Content-Type 头部信息?


文档中指出(对于“contentType”):“请求的Content-Type。默认值为[ContentType.json]”。所以也许你应该省略它? - Julien Lachal
1个回答

10

我已在本地使用 dio: ^3.0.10 进行了尝试,并且似乎 ContentType.json 对于 contentType 参数无效。

invalid contentType

通过查看 dio 的文档,应该使用 Headers.jsonContentType

valid contentType


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接