Network traffic interception in Android Studio
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 จะเป็นไปตามที่เราได้แก้ไขไว้แล้ว ตามตัวอย่างด้านล่าง
จบแล้ว ขอบคุณครับ…