reportHttpRequest method
HTTP 请求
Implementation
Future<void> reportHttpRequest(RequestOptions options) async {
try {
bool isFormData = options.data is FormData;
Map data = isFormData ? {} : options.data ?? {};
if (isFormData) {
FormData formData = options.data as FormData;
for (MapEntry<String, String> item in formData.fields) {
data[item.key] = item.value;
}
for (final (index, item) in formData.files.indexed) {
data['${item.key}-${index + 1}'] = {
"filename": item.value.filename,
"contentType": item.value.contentType.toString(),
"size": UtilFile.normalizeFileSize(item.value.length.toDouble()),
};
}
}
String time = Jiffy.now().format(pattern: 'yyyy-MM-dd HH:mm:ss');
String method = options.method;
String url = '${options.uri}';
String id = options.headers['id'];
Map<String, dynamic> queryParams = options.queryParameters;
Map output = {
"time": time,
"eventName": "Request",
"account": options.headers['account'] ?? '',
"method": method,
"url": url,
"queryParams": queryParams,
"data": data,
"id": id,
..._singleLogDeviceParams,
};
UtilPrint.trace(
'''
🚀 HTTP $method Request
Url: $url
Query Params: ${normalizeConsoleJson(queryParams)}
Data: ${normalizeConsoleJson(data)}
ID: $id''',
);
_logQueue.addToQueue(
path: p.join(dateRootPath, 'http.txt'),
content: normalizeFileContent(output),
mode: FileMode.append,
);
} catch (e, stackTrace) {
debugPrint('日志服务 - HTTP 请求日志: $e\n$stackTrace');
}
}