reportHttpResponse method
HTTP 响应
Implementation
Future<void> reportHttpResponse(Response response) async {
try {
String? id = "${response.requestOptions.headers["id"]}";
String method = response.requestOptions.method;
String url = '${response.requestOptions.uri}';
int? statusCode = response.statusCode;
String? statusMessage = response.statusMessage;
String duration = '${(DateTime.now().millisecondsSinceEpoch - int.parse(id)) / 1000}s';
Map data = response.data ?? {};
Map output = {
"time": Jiffy.now().format(pattern: 'yyyy-MM-dd HH:mm:ss'),
"eventName": "Response",
"account": response.requestOptions.headers['account'],
"method": method,
"url": url,
"statusCode": statusCode,
"statusMessage": statusMessage,
"duration": duration,
"data": data,
"id": id,
..._singleLogDeviceParams,
};
bool isSuccess = data['code'] == 1;
String statusEmoji = isSuccess ? '✅' : '❌';
String content =
'''
$statusEmoji HTTP $method Response
Url: $url
Status Code: $statusCode
Status Message: $statusMessage
Duration: $duration
Data: ${normalizeConsoleJson(data)}
ID: $id''';
UtilPrint.trace(content);
_logQueue.addToQueue(
path: p.join(dateRootPath, 'http.txt'),
content: normalizeFileContent(output),
mode: FileMode.append,
);
} catch (e, stackTrace) {
debugPrint('日志服务 - HTTP 响应日志: $e\n$stackTrace');
}
}