responseHeaders 属性

Map<String, String> responseHeaders

以键值对映射的形式返回所有响应头。

相同键头的多个值可以被合并成一个,多个值由逗号和空格分隔。

参见: http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method

实现

Map<String, String> get responseHeaders {
  // from Closure's goog.net.Xhrio.getResponseHeaders.
  var headers = <String, String>{};
  var headersString = this.getAllResponseHeaders();
  if (headersString == null) {
    return headers;
  }
  var headersList = headersString.split('\r\n');
  for (var header in headersList) {
    if (header.isEmpty) {
      continue;
    }

    var splitIdx = header.indexOf(': ');
    if (splitIdx == -1) {
      continue;
    }
    var key = header.substring(0, splitIdx).toLowerCase();
    var value = header.substring(splitIdx + 2);
    if (headers.containsKey(key)) {
      headers[key] = '${headers[key]}, $value';
    } else {
      headers[key] = value;
    }
  }
  return headers;
}