วิธีการ Log HTTP Request & Response สำหรับ Retrofit ออกที่ Logcat

cover

การเขียนแอพ Android นั้นมักจะต้องมีการเชื่อมต่อ Server เป็นส่วนใหญ่ ซึ่งการเชื่อมต่อ REST API มี Retrofit เป็น Library ยอดนิยมกันในตอนนี้ โดยปกติมันจะไม่ Log HTTP Request & Response มาให้เรา แต่จริงๆแล้ว OkHttp นั้นมันสามารถ Log ได้ เพราะมี Logging Interceptor เป็นตัวช่วยนั่นเอง

 

Installation
Logging Interceptor ต้องติดตั้งเพิ่มเติมแยกจาก OkHttp เราก็ติดตั้งโดยการ add depedencies

เรียกใช้งาน
HttpLoggingInterceptor จะมี Level ให้เราเลือก 3 แบบคือ

BASIC เป็นการ Log ที่สั้นๆง่ายๆที่สุด เพื่อให้เรารู้ว่าตอนนี้มี Request ถูกยิงออกไปแล้วหรือว่ามี Response ตอบกลับมา Status code เป็นยังไง Response Time เท่าไหร
Basic

HEADER เพิ่มเติมจาก BASIC ก็คือจะมี HEADER ทั้งหมด Log ออกมาด้วย
Header
BODY เป็นการ Log ทั้งหมดออกมารวมถึง Body ด้วย ซึ่งเราจะเห็น Json Request Body และ Json Response Body ใน Logเลย
Body
ลอง Log ด้วย Level BODY กันเลยตาม Code นี้

หลังจากสร้าง HttpLoggingInterceptor แล้ว
ต่อด้วยการสร้าง OkHttpClient แล้ว addInterceptor เข้าไปที่ OkHttpClient และตั้งให้เป็น Client ของ Retrofit

ทีนี้ Retrofit ก็พร้อมที่จะแสดงใน Logcat เมื่อเราเชื่อมต่อ Server แล้วครับ เวลาติดปัญหาเกี่ยวกับการต่อ Server ทำไมข้อมูลไม่เข้า หรือว่าไม่รู้ว่า Status Code เป็นอะไร ฺBody ส่ง Json มาผิด Format หรือไม่ เราก็สามารถดู Log ตรงนี้วิเคราะห์ปัญหาและหาทางแก้ต่อไปได้สะดวกขึ้น

Comments

comments

Leave a Comment

Your email address will not be published. Required fields are marked *