Network traffic interception in Android Studio

Jakkrit
TakoDigital
Published in
3 min readJun 30, 2023

Android Studio สามารถดู traffic ของ API ที่เราเรียกใช้ได้ทั้ง request และ response ผ่านทาง network inspector แต่ยังไม่สามารถ interception เพื่อแก้ response ของ API สำหรับ development ได้ ไม่ว่าจะเป็น response code, response header หรือ response body จนมาถึง Android Studio Flamingo ได้เพิ่มความสามารถนี้มาให้ใช้งานได้แล้ว โดยสามารถปรับแต่งได้ดังนี้

เริ่มจากเปิด project ที่ต้องการ แล้วกด App Inspection ที่เมนูด้านล่าง

เลือก Process ที่ต้องการ intercept network

เลือก Network Inspector

เลือก Rules และ กด + เพื่อเพิ่ม rule ใหม่

ในส่วนที่เป็น Origin ให้ใส่ข้อมูลของ server ที่ได้ใช้อยู่ภายในแอปฯ

จากภาพตัวอย่างด้านล่าง ภายในแอปฯ มีการเรียก GET ไปที่ https://demo8793927.mockable.io/colors

การเปลี่ยน response code

Apply rule for status: คือ status code ต้นทางที่ได้จาก server

Replace with status code: คือ status code ที่ต้องการเปลี่ยน

จากตัวอย่างต้องการเปลี่ยน status code จาก 200 เป็น 500 ให้แอปพลิเคชันของเรา

การเพิ่มหรือแก้ไข response header

ในส่วน Header rule สามารถกด + เพื่อเพิ่มหรือแก้ไข header ได้

จากตัวอย่างทดลองเปลี่ยน content-type เป็น text

การแก้ไข response body

ในส่วนของ response body สามารถกด + เพื่อใส่ body ที่ต้องการ โดยสามารถทำได้ทั้งหา keyword เพื่อ replace ค่าที่ต้องการ หรือเปลี่ยน response body ทั้งหมด

ตัวอย่างด้านล่างเป็นการ replace ค่าของ body ทั้งหมดด้วยค่าที่ต้องการ

สุดท้ายนี้เรามาดู response ทั้งก่อนและหลังใช้ network interceptor

จากภาพด้านล่าง ก่อนมีการแก้ไขด้วย network interceptor จะเห็นได้ว่า conent-type, response status code และ response body จะเป็นค่าเดิมที่ได้จาก server

เมื่อมีการแก้ไขด้วย network interceptor ค่าของ conent-type, response status code และ response body จะเป็นไปตามที่เราได้แก้ไขไว้แล้ว ตามตัวอย่างด้านล่าง

จบแล้ว ขอบคุณครับ…

--

--