12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import {LogColor, logColor} from "./logger";
- export let HookGameCenter = {
- printReqParam: function (HttpLoggingInterceptor) {
- HttpLoggingInterceptor.a.overload('okhttp3.Interceptor$Chain').implementation = function (chain) {
- //获取request的url
- var request = chain.request();
- var url = request.url();
- var result = this.a(chain); // 先保存原方法执行的结果
- // 获取THREAD_LOGS ThreadLocal对象
- var threadLogs = HttpLoggingInterceptor.THREAD_LOGS.value;
- // 通过get方法获取当前线程保存的JSONObject
- var threadLogsValue = threadLogs.get();
- // 检查并打印THREAD_LOGS的内容
- if (threadLogsValue !== null) {
- logColor('请求url: '+url+'\n参数: ' + threadLogsValue.toString(), LogColor.GREEN_TEXT);
- } else {
- console.log('请求参数 is null or not set for the current thread');
- }
- return result; // 返回原方法执行的结果
- }
- }, startHook: function () {
- // com.framework.net.okhttp3
- var HttpLoggingInterceptor = Java.use('com.framework.net.okhttp3.HttpLoggingInterceptor');
- HookGameCenter.printReqParam(HttpLoggingInterceptor);
- HookGameCenter.printResponse(HttpLoggingInterceptor);
- },
- printResponse: function (HttpLoggingInterceptor) {
- HttpLoggingInterceptor.intercept.overload('okhttp3.Interceptor$Chain').implementation = function (chain) {
- var result = this.intercept(chain); // 先保存原方法执行的结果
- // 预览响应体内容
- // 预览响应体内容
- try {
- // 限制预览的最大字节数,避免大数据传输
- var responseBody = result.peekBody(1024 * 1024); // 预览最大1MB的数据
- var responseBodyString = responseBody.string(); // 将响应体转换为字符串
- logColor("Response Body: " + responseBodyString, LogColor.BLUE_TEXT);
- } catch (e) {
- console.log("Error reading response body: " + e);
- }
- return result; // 返回原方法执行的结果
- }
- }
- }
|