# Intercepting HTTP traffic

လွန်ခဲ့တဲ့ ၈ လလောက်က User base တတ်လာပြီး တစ်လ အတွင်း over a million HTTP requests ကျော်လာတဲ့ Mobile app တစ်ခုအတွက် Performance Analysis လုပ်ခဲ့ရာမှာ အသုံးပြုခဲ့တဲ့ Tool တစ်ခုအကြောင်း Share ပေးပါမှာ ဖြစ်ပါတယ်။

Android, iOS, Web app တွေအတွက် API တွေစရေးတဲ့အချိန်မှာ Performance ထက် Functionality ကို အဓိကဦးစားပေးပြီး ရေးလေ့ရှိပါတယ်။ Business လိုအပ်ချက်အရ မြန်မြန် Code ရေး မြန်မြန် Production တင် မြန်မြန် အလုပ်လုပ် မြန်မြန် လူသုံးများပြီး ဈေးကွက်ထဲ အမြန်ရောက်အောင်ပါ။

ဒါပေမယ့် User Base တက်လာလို့ API ကို အသုံးပြုတဲ့ နှုန်းများလာတဲ့အခါ Server အတွက် Memory, CPU, Network Bandwidth သုံးတဲ့ နှုန်းတွေ ပိုတက်လာပြီး Server ကို Vertical Scaling (Resource တွေလိုက်တိုး) ဒါမှမဟုတ် Horizontal Scaling (Server တွေအလုံးလိုက် တိုးပြီး Load Balancing လုပ်) တွေ Infra ဘက်က လိုက်လုပ်ရပါတယ်။

ပြဿနာကတော့ Infra Cost တက်လာ ပြီး လစဉ် ပိုက်ဆံပိုကုန်ကျ လာတာပါပဲ။

ဒီအချိန်မျိုးမှာ Code တွေအားလုံးကို ပြန်စစ်ကြည့်ပြီး Refactor လုပ်ဖို့ မလွယ်ပါဦး။ ဒီလိုအခြေအနေမှာ Production ရောက်နေတဲ့ Android, iOS application တွေကို Performance Analysis လုပ်ပြီး ရှိသင့်တဲ့ Latency ထက်များနေတဲ့ API Call တွေကတစ်ဆင့် ချိတ်ဆက် အလုပ်လုပ်နေတဲ့ Code တွေကို Focus ထားပြီး ပြင်တာက သင့်တော်ပါတယ်။

ဒီ Post မှာတော့ Android အတွက် Server ကိုခေါ်တဲ့ API call တွေကို ကြားဖြတ် စောင့်ကြည့် ပြီး analysis လုပ်ဖို့ HttpToolkit ကို ဘယ်လိုသုံးလို့ရလဲဆိုတာ Share သွားမှာပါ။

လက်တွေ့ စမ်းသပ်ကြည့်ခြင်း

1. HTTPTookit Desktop App ကို install လုပ်ပါ။ [https://httptoolkit.com/](https://httptoolkit.com/)
    
2. LDPlayer 9 Android Emulator ကို install လုပ်ပါ။ [https://www.ldplayer.net/versions](https://www.ldplayer.net/versions) (အပြင် Android ဖုန်းကို Root လုပ်ပြီး သုံးလည်းရပါတယ်။ Emulator က ပို သုံးရ အဆင်ပြေတာကြောင့်ပါ)
    
3. LDPlayer 9 ကို ဖွင့်ပြီး Root Permission enable လုပ်ပါ။
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709959169491/b81238f4-9dbb-4e48-9ac5-59b4266b4914.png align="center")
    
4. LDPlayer ထဲက Google Play store ကိုဖွင့်ပြီး HTTPToolkit Android App ကို install လုပ်ပြီး ဖွင့်ထားပါ။ (အပြင်က apk download လုပ်ပြီး LDPlayer9 ထဲကို ဆွဲထည့်ပြီး install လုပ်လည်းရပါတယ်။)
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709960090682/b73da458-39ba-4948-84c8-3202e6159210.png align="center")
    
5. HTTPToolkit Desktop App ကိုဖွင့်ပါ။ LDPlayer 9 emulator ဖွင့်ထားတဲ့အတွက် Android Device via ADB ဆိုတဲ့ Option Enable ဖြစ်လာတာတွေ့ရပါလိမ့်မယ်။ နှိပ်ပြီး Connect လုပ်ပါ။
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709959581810/cb34709d-9494-47e7-87e1-0efebe6e6ec5.png align="center")
    
6. LDPlayer9 ဘက်မှာ Connection request ပေါ်လာရင် OK နှိပ်ပါ။
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709960256677/9c645ffa-7f6c-4ff9-ad9b-b37078ab04d2.png align="center")
    
7. LDPlayer9 ထဲက HTTPToolkit android app နဲ့ Desktop App တို့ ချိတ်ဆက်မိပြီး HTTP traffic တွေကို စတင် ကြားဖြတ်စောင့်ကြည့်တဲ့ အလုပ်စလုပ်နေပါပြီ။
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709960450646/30e5e34a-b8a9-49ee-aec2-df9502902aee.png align="center")
    
8. LDPlayer9 ထဲမှာ ကြားဖြတ်စောင့်ကြည့်ချင်တဲ့ App ကိုဖွင့်လိုက်ပါ။ Desktop App ဘက်မှာ http traffic တွေပေါ်လာတာ တွေ့ရပါလိမ့်မယ်။
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709963757692/b3489f9c-9244-44d7-b893-3c32f71c8e9d.png align="center")

Connection တစ်ခုချင်းစီကို ထောက်ကြည့်လိုက်တာနဲ့ ညာဘက် Panel မှာ Request/Response Header, Payload .. စသဖြင့် အသေးစိတ်တွေ့ရပါလိမ့်မယ်။

တစ်လ 4$ နဲ့ Pro Version ကို ဝယ်သုံးရင် Performance ပိုင်း အသေးစိတ် အချက်အလက်တွေ တွေ့မှာဖြစ်ပါတယ်။ နောက် HAR (HTTP Archive) format နဲ့ traffic တွေကို download လုပ်ပြီး Analysis လုပ်လို့ရပါတယ်။ (ကျနော်ကတော့ HAR ကနေ csv ပြောင်း Excel သုံးပြီး Analysis လုပ်ပါတယ်။)

တစ်ခြား Tools တွေအများကြီးရှိပေမယ့် HTTPToolkit က သုံးရ လွယ်ကူအဆင်ပြေ ပေါ့ပါး ပါတယ်။ ပိုက်ဆံနည်းနည်း သုံးပြီး အလုပ်ပိုတွင်ပါတယ်။

Aung Kyaw Minn
