看dio-http-cache
如何处理response
的数据
Response _buildResponse( CacheObj obj, int statusCode, RequestOptions options) { Headers headers; if (null != obj.headers) { headers = Headers.fromMap((Map<String, List<dynamic>>.from( jsonDecode(utf8.decode(obj.headers)))) .map((k, v) => MapEntry(k, List<String>.from(v)))); } if (null == headers) { headers = Headers(); options.headers.forEach((k, v) => headers.add(k, v ?? "")); } // add flag headers.add(DIO_CACHE_HEADER_KEY_DATA_SOURCE, "from_cache"); dynamic data = obj.content; if (options.responseType != ResponseType.bytes) { data = jsonDecode(utf8.decode(data)); } return Response( data: data, headers: headers, extra: options.extra..remove(DIO_CACHE_KEY_TRY_CACHE), statusCode: statusCode ?? 200); }
很容易发现最后返回Response
的时候并没有处理isRedirect
这个属性,因此这个属性自然而然变成了null
。