From a1833e254c6bdc94be4fb2717bc137ccd727b794 Mon Sep 17 00:00:00 2001 From: Doghole Date: Tue, 13 May 2025 14:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rich/emoney/util/PatchOkHttpUAStatic.java | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 src/main/java/quant/rich/emoney/util/PatchOkHttpUAStatic.java diff --git a/src/main/java/quant/rich/emoney/util/PatchOkHttpUAStatic.java b/src/main/java/quant/rich/emoney/util/PatchOkHttpUAStatic.java deleted file mode 100644 index 403b93b..0000000 --- a/src/main/java/quant/rich/emoney/util/PatchOkHttpUAStatic.java +++ /dev/null @@ -1,49 +0,0 @@ -package quant.rich.emoney.util; -import net.bytebuddy.ByteBuddy; -import net.bytebuddy.agent.ByteBuddyAgent; -import net.bytebuddy.asm.Advice; -import net.bytebuddy.dynamic.loading.ClassReloadingStrategy; -import static net.bytebuddy.matcher.ElementMatchers.*; - -public class PatchOkHttpUAStatic { - - // 入口方法:只需调用一次 - public static void replace(String uaString) { - try { - ByteBuddyAgent.install(); - - // 传递目标 UA 值到 Advice - UserAgentAdvice.overrideValue = uaString; - - new ByteBuddy() - .redefine(Class.forName("okhttp3.Request$Builder")) - .visit(Advice.to(UserAgentAdvice.class) - .on(named("header").and(takesArguments(String.class, String.class)))) - .make() - .load(Class.forName("okhttp3.Request$Builder").getClassLoader(), - ClassReloadingStrategy.fromInstalledAgent()); - - System.out.println("[PatchOkHttpUA] Successfully installed custom User-Agent hook."); - } catch (Exception e) { - e.printStackTrace(); - System.err.println("[PatchOkHttpUA] Failed to patch OkHttp."); - } - } - - // 内部类:修改 header(name, value) 方法逻辑 - public static class UserAgentAdvice { - public static String overrideValue = "MySpoofed-UA"; - - @Advice.OnMethodEnter(skipOn = Advice.OnNonDefaultValue.class) - static boolean intercept( - @Advice.This Object builder, - @Advice.Argument(0) String name, - @Advice.Argument(value = 1, readOnly = false) String value) { - if ("User-Agent".equalsIgnoreCase(name)) { - value = overrideValue; - System.out.println("[PatchOkHttpUA] Replaced User-Agent with: " + value); - } - return false; // 不跳过原方法,继续执行但已修改参数 - } - } -} \ No newline at end of file