getResponseLog method
String
getResponseLog(
- Response response
)
Implementation
String getResponseLog(Response<dynamic> response) {
RequestOptions request = response.requestOptions;
StringBuffer sb = StringBuffer();
sb.write("请求时间:${response.requestOptions.startTime}\n");
sb.write("请求链接:${request.uri}\n");
sb.write("请求方式:${request.method}\n");
Duration duration = response.requestOptions.endTime
.difference(response.requestOptions.startTime);
sb.write("请求时长:${duration.inMilliseconds}ms\n");
sb.write("状态码:${response.statusCode ?? 0}\n\n");
if (request.headers.isNotEmpty) {
sb.write("请求头部:\n");
request.headers.forEach((key, value) {
if (value is List) {
for (var e in value) {
sb.writeln('$key: $e');
}
} else {
sb.writeln('$key: $value');
}
});
sb.write("\n");
}
if (request.data != null) {
sb.write("请求参数:\n");
String requestData = "";
if (request.data is FormData) {
FormData formData = request.data as FormData;
requestData = formData.fields
.map((e) => "${e.key}: ${e.value}")
.toList()
.join("\n");
} else {
try {
requestData = _encoder.convert(request.data);
} catch (_) {
requestData = request.data.toString();
}
}
sb.write("$requestData\n");
}
if (!response.headers.isEmpty) {
sb.write("响应头部:\n");
response.headers.forEach((key, value) {
for (var e in value) {
sb.writeln('$key: $e');
}
});
sb.write("\n");
}
if (response.data != null) {
sb.write("响应内容:\n");
String responseData = "";
try {
if (response.data is String) {
dynamic dataMap = _decoder.convert(response.data);
responseData = _encoder.convert(dataMap);
} else {
dynamic prettyString = _encoder.convert(response.data);
responseData = prettyString;
}
} catch (_) {
responseData = response.data.toString();
}
sb.write("$responseData\n");
}
return sb.toString();
}