我正在使用此代码通过Dart发送HTTP请求:
var request = await httpClient.postUrl(Uri.parse(url));
Map jsonMap = {'pageSize': 10};
request.add(utf8.encode(json.encode(jsonMap)));
request.headers.set('content-type', 'application/json');
var response = await request.close();
if (response.statusCode == HttpStatus.OK) {
}
但它显示:
HttpException: HTTP headers are not mutable
为什么给我这个提示,我应该怎么解决?
答案 0 :(得分:1)
您需要检查 HttpHeaders 类页面。 (https://api.dart.dev/stable/2.10.5/dart-io/HttpHeaders-class.html)
<块引用>HttpRequest 和 HttpClientResponse 始终具有不可变的标头。 HttpResponse 和 HttpClientRequest 从写入正文的那一刻起就具有不可变的标头。
request.add(utf8.encode(json.encode(jsonMap)));
这一行是添加请求正文,因此使 HttpClientRequest 标头不可变。所以如果你想添加标题,你需要在这一行之前做。
var request = await httpClient.postUrl(Uri.parse(url));
Map jsonMap = {'pageSize': 10};
request.headers.set('content-type', 'application/json');
request.add(utf8.encode(json.encode(jsonMap)));
var response = await request.close();
if (response.statusCode == HttpStatus.OK) {
}