移动端POST请求监听实战Android与浏览器调试技巧
馃専 POST璇锋眰鍒板簳鏄釜鍟ワ紵鍜变滑鍏堟潵鐮翠釜鍐帮紒
鏈夋病鏈夐亣鍒拌繃杩欑鎯呭喌锛熶綘鍒氬紑鍙戠殑APP姝绘椿鏀朵笉鍒版湇鍔″櫒杩斿洖鐨勬暟鎹紝鎴栬€呮祻瑙堝櫒閲屾彁浜ょ殑琛ㄥ崟鍍忕煶娌夊ぇ娴?..杩欐椂鍊欏氨璇ユ惉鍑篜OST璇锋眰鐩戝惉杩欎釜鏁戝叺浜嗭紒浣嗛棶棰樻潵浜嗏€斺€旇繖鐜╂剰鍎垮埌搴曟€庝箞鐜╋紵浠婂ぉ鍜变滑灏辩敤澶х櫧璇濇媶瑙h繖涓妧鏈椿锛屾墜鎶婃墜鏁欎綘鎴愪负绉诲姩绔姄鍖呭ぇ甯堬紒
涓€銆佸厛鎼炴噦鍩虹姒傚康锛堜笉鐒跺鏄撴嚨鍦堬級
馃攳 HTTP璇锋眰鐨?蹇€掑皬鍝?姣斿柣
鎯宠薄POST璇锋眰灏卞儚蹇€掑憳閫佽揣锛氣€?strong>鈥嬩綘鎶婂寘瑁癸紙鏁版嵁锛夎杩涚焊绠憋紙璇锋眰浣擄級鈥?/strong>鈥嬶紝璐翠笂鍦板潃锛圲RL锛夛紝鐒跺悗蹇€掑叕鍙革紙缃戠粶鍗忚锛夊府浣犻€佸埌鏈嶅姟鍣ㄣ€傚拰GET璇锋眰鏈€澶х殑鍖哄埆锛烥ET灏卞儚鏄庝俊鐗囷紝鎵€鏈変俊鎭兘鍐欏湪淇″皝琛ㄩ潰锛汸OST鍒欐槸灏佸彛鐨勫寘瑁癸紝鏇村畨鍏ㄤ篃鏇磋兘瑁呫€?/p>
涓句釜鏍楀瓙锛氱敤鎴风櫥褰曟椂锛屽鏋滃瘑鐮佺敤GET璇锋眰鍙戦€侊紝娴忚鍣ㄥ巻鍙茶褰曞氨鑳界湅鍒版槑鏂囧瘑鐮侊紱鎹㈡垚POST璇锋眰锛屽瘑鐮佸氨钘忓湪灏佺鑳跺甫閲屼簡銆?/p>
浜屻€丄ndroid璋冭瘯鍥涘ぇ绁炲櫒 馃洜锔?/h2>
1. Android Studio鑷甫鐨?鐓у闀?
鎵撳紑Android Studio鐨凬etwork Profiler锛岃繖鐜╂剰鍎垮氨鍍忕粰APP瑁呬簡涓猉鍏夋満銆傛垜鏈€杩戠敤杩欎釜鍔熻兘鎶撳埌涓€涓钁゜ug锛氣€?strong>鈥嬫煇涓浘鐗囦笂浼犺姹傚眳鐒堕噸澶嶅彂閫佷簡3娆♀€?/strong>鈥嬶紒鎿嶄綔姝ラ寰堢畝鍗曪細
- 杩炴帴鐪熸満/妯℃嫙鍣?/li>
- 鐐瑰紑鍙充笂瑙掔殑"Network Profiler"鎸夐挳
- 鎿嶄綔APP瑙﹀彂缃戠粶璇锋眰
- 鐪嬪疄鏃剁€戝竷娴佸浘琛紙鍍忓績鐢靛浘涓€鏍风洿瑙傦級
鈿狅笍 娉ㄦ剰锛氶亣鍒癏TTPS璇锋眰璁板緱閰嶇疆SSL璇佷功锛屼笉鐒剁湅鍒扮殑閮芥槸鍔犲瘑涔辩爜銆?/p>
2. OkHttp鐨?褰曢煶绗?鍔熻兘
鍦╞uild.gradle鍔犱笂杩欒浠g爜锛?/p>
groovy澶嶅埗implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
鐒跺悗缁橭kHttpClient瑁呬釜"绐冨惉鍣?锛?/p>
java澶嶅埗HttpLoggingInterceptor logger = new HttpLoggingInterceptor(); logger.setLevel(HttpLoggingInterceptor.Level.BODY);
杩欐椂鍊欐帶鍒跺彴灏变細鎵撳嵃瀹屾暣鐨勮姹傚ご鍜屽搷搴斾綋锛屽氨鍍忕粰缃戠粶璇锋眰鍋氫簡涓叏韬綋妫€銆?/p>
3. Charles鐨?鏃跺厜鏈?鐜╂硶
杩欎釜鎶撳寘宸ュ叿鏈€鐗涚殑鏄兘鈥?strong>鈥嬩慨鏀瑰巻鍙茶姹傗€?/strong>鈥嬨€備笂鍛ㄥ府鏈嬪弸璋冭瘯鏃讹紝鍙戠幇鏈嶅姟鍣ㄨ繑鍥炵殑鏁版嵁缁撴瀯鍙樹簡锛岀洿鎺ュ彸鍑诲凡鍙戦€佺殑璇锋眰閫夋嫨"Repeat with Edit"锛屾妸鍙傛暟浠巚1鏀规垚v2鐗堟湰锛岀珛椹鐜伴棶棰樸€?/p>
宸ュ叿瀵规瘮 | Charles | Chrome DevTools |
---|---|---|
绉诲姩绔€傞厤 | 鉁?/td> | 浠呮祻瑙堝櫒 |
HTTPS瑙e瘑 | 瑕佽璇佷功 | 鑷姩鏀寔 |
璇锋眰绡℃敼 | 鉁?/td> | 鉂?/td> |
寮辩綉妯℃嫙 | 鉁?/td> | 鉂?/td> |
4. 寰俊灏忕▼搴忕殑"鐗逛緵閫氶亾"
灏忕▼搴忛噷POST璇锋眰瑕佺壒鍒敞鎰忊€?strong>鈥嬪煙鍚嶇櫧鍚嶅崟鈥?/strong>鈥嬪拰鈥?strong>鈥婬TTPS寮哄埗瑕佹眰鈥?/strong>鈥嬨€傝寰楀幓骞存湁涓潙锛氬紑鍙戠増鑳界敤锛屼綋楠岀増鎶ラ敊锛屾渶鍚庡彂鐜版槸request鍩熷悕娌¢厤缃繘MP鍚庡彴鐨勫悎娉曞煙鍚嶅垪琛ㄣ€?/p>
涓夈€佹祻瑙堝櫒璋冭瘯鐨勯殣钘忔妧宸?馃寪
1. Chrome鐨?涓婂笣瑙嗚"
鍦ㄦ墜鏈烘祻瑙堝櫒杈撳叆chrome://inspect
锛岃繛涓婃暟鎹嚎灏辫兘杩滅▼璋冭瘯銆傛渶杩戠敤杩欎釜鏂规硶鎶撳埌涓€涓伒寮備簨浠讹細鈥?strong>鈥嬫煇涓狢SS鏂囦欢灞呯劧鍦╥OS璁惧涓婅Е鍙戜簡POST璇锋眰鈥?/strong>鈥嬶紝鏈€鍚庡彂鐜版槸璇敤浜?code>@import璇彞銆?/p>
2. Safari鐨?鎹夎糠钘?缁濇嫑
iOS璁惧璋冭瘯蹇呴』鐢↙ightning鏁版嵁绾匡紙Type-C鍙g殑iPad闄ゅ锛夈€傛湁涓喎鐭ヨ瘑锛氣€?strong>鈥婼afari鐨刉eb妫€鏌ュ櫒鍙互鏌ョ湅WebSocket閫氫俊鈥?/strong>鈥嬶紝杩欏璋冭瘯鑱婂ぉ鍔熻兘鐗瑰埆鏈夌敤銆?/p>
鍥涖€佹柊鎵嬪繀韪╃殑涓夊ぇ澶╁潙 馃挜
- 鈥?strong>鈥嬭法鍩熼棶棰樷€?/strong>鈥嬶細鏈€杩戝府浜鸿皟璇曟椂锛岄亣鍒颁釜
No 'Access-Control-Allow-Origin'
鎶ラ敊锛屾渶鍚庣敤nginx鍙嶅悜浠g悊鎵嶈В鍐?/li> - 鈥?strong>鈥嬫暟鎹牸寮忓寲鈥?/strong>鈥嬶細鏄庢槑post浜咼SON鏁版嵁锛屾湇鍔″櫒鍗磋娌℃敹鍒帮紵妫€鏌ontent-Type鏄笉鏄?code>application/json锛?/li>
- 鈥?strong>鈥嬭秴鏃惰缃€?/strong>鈥嬶細绉诲姩缃戠粶涓嶇ǔ瀹氭椂锛屽缓璁妸瓒呮椂鏃堕棿璁句负
15-30绉?/code>锛屽埆鐢ㄩ粯璁ゅ€?/li>
浜斻€佸疄鎴樻渚嬶細鐢ㄦ埛鐧诲綍璇锋眰鍏ㄦ祦绋嬬洃鍚?/h2>
浠ュ吀鍨嬬櫥褰曞満鏅负渚嬶細
- 鐢ㄦ埛鍦ˋPP杈撳叆璐﹀彿瀵嗙爜
- 鐐瑰嚮鐧诲綍瑙﹀彂POST璇锋眰
- 鐢–harles鎶撳寘鍙戠幇璇锋眰浣撴槸鏄庢枃
- 寤鸿寮€鍙戞敼鎴愬姞瀵嗕紶杈擄紙姣斿RSA鍔犲瘑瀵嗙爜瀛楁锛?/li>
- 鍐嶆鎶撳寘楠岃瘉鍔犲瘑鏁堟灉
杩欐椂鍊欏鏋滃搷搴旂爜鏄?01锛屽氨瑕佹鏌ワ細
- 鉁?璇锋眰澶存湁娌℃湁甯uthorization
- 鉁?Token鏄惁杩囨湡
- 鉁?瀵嗙爜鍔犲瘑绠楁硶鏄惁鍜屾湇鍔″櫒涓€鑷?/li>
鍏€佹暟鎹畨鍏ㄤ笉鑳藉繕 馃敀
鏈€杩戞煇澶у巶鏁版嵁娉勯湶浜嬩欢缁欏挶浠暡鍝嶈閽燂紒鐩戝惉POST璇锋眰鏃讹細
- 娴嬭瘯鐜鐢?code>HTTP娌¢棶棰橈紝浣嗏€?strong>鈥嬬敓浜х幆澧冨繀椤讳笂HTTPS鈥?/strong>鈥?/li>
- 鏁忔劅瀛楁瑕佸仛鑴辨晱澶勭悊锛堟瘮濡傛妸
password=123456
鏄剧ず鎴?code>password=******锛?/li> - 瀹氭湡鏇存柊SSL璇佷功锛堝埆鍍忓幓骞存煇閾惰閭f牱鐢ㄨ繃鏈熻瘉涔︼級
涓冦€佹湭鏉ヨ秼鍔挎棭鐭ラ亾 馃殌
鐜板湪鏈変簺鍓嶆部鎶€鏈凡缁忓紑濮嬬敤鈥?strong>鈥婣I鑷姩鍒嗘瀽缃戠粶璇锋眰鈥?/strong>鈥嬩簡銆傛瘮濡傛煇寮€婧愰」鐩兘鑷姩璇嗗埆寮傚父璇锋眰锛屾瘮浜哄伐鎺掓煡蹇?0鍊嶏紒涓嶈繃璇村疄鍦ㄧ殑锛屽啀鏅鸿兘鐨勫伐鍏蜂篃姣斾笉涓婂紑鍙戣€呰嚜宸辨噦涓氬姟閫昏緫銆?/p>
鏈€鍚庤鐐瑰ぇ瀹炶瘽
璋冭瘯POST璇锋眰灏卞儚鐮存锛岄渶瑕佽€愬績鍜岃瀵熷姏銆傝寰楁湁娆′负鎵炬煇涓棿姝囨€ug锛岃繛缁姄鍖呬笁澶╂墠鍙戠幇鏄矾鐢卞櫒瀹氭椂閲嶅惎瀵艰嚧鐨勶紒鐜板湪5G鏅強鍚庯紝鍙堝嚭鐜颁簡鏂扮殑鎸戞垬鈥斺€斿浣曞湪楂橀€熺綉缁滅幆澧冧笅鎹曟崏鐬椂璇锋眰锛熻繖灏遍渶瑕佸挶浠寔缁洿鏂版妧鑳藉簱鍟︼紒
锛堟湰鏂囬儴鍒嗚皟璇曟暟鎹潵鑷猅esterHome 2024骞寸Щ鍔ㄧ寮€鍙戣皟鏌ユ姤鍛婏紝瀹炴祴鏈夋晥妗堜緥瑕嗙洊Android 8-14绯荤粺锛?/p>