http标题在扑朔迷离中不可变

时间:2020-09-28 15:28:27

标签: dart

我正在使用此代码通过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

为什么给我这个提示,我应该怎么解决?

1 个答案:

答案 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) {
}
相关问题