package Ġcom . did ich ux ing . d ora emon kit . plugin . clas str ans former Ċ Ċ import Ġcom . did ich ux ing . d ora emon kit . plugin . Do Kit Ext Util Ċ import Ġcom . did ich ux ing . d ora emon kit . plugin . is Release Ċ import Ġcom . did ich ux ing . d ora emon kit . plugin . println Ċ import Ġcom . did ig lobal . boost er . annotations . Priority Ċ import Ġcom . did ig lobal . boost er . kotlin x . as Iterable Ċ import Ġcom . did ig lobal . boost er . transform . Transform Context Ċ import Ġcom . did ig lobal . boost er . transform . asm . Class Transformer Ċ import Ġcom . did ig lobal . boost er . transform . asm . className Ċ import Ġcom . google . auto . service . Auto Service Ċ import Ġorg . object web . asm . Op codes . IN VOKE STATIC Ċ import Ġorg . object web . asm . Op codes . IN VOKE VIRTUAL Ċ import Ġorg . object web . asm . tree . Class Node Ċ import Ġorg . object web . asm . tree . Method Insn Node Ċ Ċ /** Ċ Ġ* Ġ================================= =============== Ċ Ġ* Ġ ä½ľ ĠĠĠ Ġ èĢħ ï¼ļ jint ï¼Ī éĩĳ åı° ï¼ī Ċ Ġ* Ġ çīĪ ĠĠĠ Ġæľ¬ ï¼ļ 1 . 0 Ċ Ġ* ĠåĪĽå»º æĹ¥æľŁ ï¼ļ 2 0 2 0 / 5 / 1 4 - 1 8 : 0 7 Ċ Ġ* Ġæı ı ĠĠĠ Ġ è¿° ï¼ļ wiki : https :// juejin . im / post / 5 e 8 d 8 7 c 4 f 2 6 5 da 4 7 ad 2 1 8 e 6 b Ċ Ġ* Ġ ä¿® è®¢ åİĨåı² ï¼ļ Ċ Ġ* Ġ================================= =============== Ċ Ġ*/ Ċ //@ Priority ( 1 ) Ċ //@ Auto Service ( Class Transformer :: class ) Ċ class ĠUrl Connection Transformer Ġ: ĠClass Transformer Ġ{ ĊĠĠĠ Ġprivate Ġval ĠSH ADOW _ URL Ġ= Ġ" com / did ich ux ing / d ora emon kit / aop / url connection / Http Url Connection Proxy Util " ĊĠĠĠ Ġprivate Ġval ĠDESC Ġ= Ġ"( Ljava / net / URLConnection ;) Ljava / net / URLConnection ;" ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( context : ĠTransform Context , Ġklass : ĠClass Node ): ĠClass Node Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context . is Release ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġklass ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Do Kit Ext Util . d okit Plugin Switch Open ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġklass ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Do Kit Ext Util . comm Ext . network Switch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġklass ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Do Kit Ext Util . ignore Package Names ( klass . className )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġklass ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġklass . methods . forEach Ġ{ Ġmethod Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . instructions ?. iterator ()?. as Iterable ()?. filter Is Instance ( Method Insn Node :: class . java )?. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . opcode Ġ== ĠIN VOKE VIRTUAL Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . owner Ġ== Ġ" java / net / URL " Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name Ġ== Ġ" open Connection " Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . desc Ġ== Ġ" () Ljava / net / URLConnection ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . instructions . insert ( it , ĠMethod Insn Node ( IN VOKE STATIC , ĠSH ADOW _ URL , Ġ" proxy ", ĠDESC , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġklass ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ