اغلب در طول توسعه برنامه های کاربردی تلفن همراه، ما به شدت به مصرف API ها متکی هستیم. توانایی بازرسی و ویرایش تماسهای API در طول توسعه میتواند در زمان زیادی صرفهجویی کند. با این حال، بر خلاف توسعه وب، در اندروید، ما نمی توانیم از مرورگر شبکه بازرس استفاده کنیم، بنابراین باید به ابزارهای پراکسی تکیه کنیم.
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <debug-overrides> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config>
در AndroidManifest.xml، با افزودن ورودی زیر به تگ برنامه، به این فایل پیکربندی ارجاع دهید.
<application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:networkSecurityConfig="@xml/network_security_config" <----------- this >
فیلتر کردن
میتوانیم درخواستهایی را که میخواهیم ببینیم با وارد کردن عبارت مورد نظر در بالا فیلتر کنیم. این برای محدود کردن نتایجی که میخواهیم ببینیم مفید است، یا حتی فقط با استفاده از عباراتی مانند dev. یا .qa، فراخوانهای API را برای یک محیط خاص نشان میدهد.
نفوذ
با وارد کردن عبارت در قسمت Intercept میتوانیم درخواستها را رهگیری کنیم. در هنگام اشکال زدایی مانند نقاط شکست کار می کند، درخواست را متوقف می کند و اجازه می دهد مقادیر را از URL، بدنه یا درخواست تغییر دهید. این می تواند برای آزمایش موارد لبه یا آزمایش سریع سناریوهایی که داده های مورد نیاز را نداریم مفید باشد.
با فشردن Resume All به مرحله پاسخگویی میروید. و در اینجا ما همچنین می توانیم پاسخ به مقادیر خواسته خود را ویرایش کنیم. این همچنین می تواند برای آزمایش موارد لبه یا سناریوهایی که داده های لازم را نداریم مفید باشد. علاوه بر این، ما حتی میتوانیم یک سناریوی معین را در صورت خراب شدن سرور API آزمایش کنیم، زیرا به سرور ضربه نمیزنیم!
این مقاله خلاصه ای از مقاله Monitoring Network on Android with mitmproxy توسط William Alves می باشد.