[¾Èµå·ÎÀ̵å/Android]Retrofit¿¡¼ Interceptor¸¦ ÀÌ¿ëÇØ ÄíÅ°/¼¼¼Ç À¯ÁöÇÏ´Â ¹æ¹ý
RetrofitÀº ¿ì¸®°¡ ÇØÁÖ¾î¾ßÇÒ ±ÍÂúÀº ³×Æ®¿öÅ© Åë½Å ÀÛ¾÷À» ´ë½ÅÇØÁÖ´Â Á¤¸» À¯¿ëÇÑ ¶óÀ̺귯¸®ÀÔ´Ï´Ù.
[¾Èµå·ÎÀ̵å]À¯¿ëÇÑ ¶óÀ̺귯¸® - Retrofit(REST API Åë½Å)
REST APIÅë½ÅÀ» ÇÒ¶§ Á¤¸» À¯¿ëÇÏ°í ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾Èµå·ÎÀÌµå ¾ÛÀ» °³¹ßÇÏ½Ã¸é¼ ·Î±×ÀÎÀ» ÇÊ¿ä·Î ÇÏ´Â ¼ºñ½º¸¦ ¸¸µé¾î¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
·Î±×ÀÎÀ» Çϴ°æ¿ì ·Î±×ÀÎ À¯Áö¸¦ À§Çؼ Ŭ¶óÀ̾ðÆ®´Â ÄíÅ°¸¦, ¼¹ö´Â ¼¼¼ÇÀ» ÀÌ¿ëÇÏ°Ô µË´Ï´Ù.
(Äí...ÄíÅ° ¶¯±ä´Ù...)
¾Èµå·ÎÀ̵忡¼ CookieStore¸¦ ÀÌ¿ëÇϸé óÀ½¿¡ ¾ÛÀ» ½ÇÇàÇÏ°í ·Î±×ÀÎÇÑµÚ ÀÌ·ç¾îÁö´Â ¸ðµç Request¿¡ ´ëÇؼ ÄíÅ°¸¦ À¯ÁöÇؼ °è¼Ó ·Î±×ÀÎµÈ »ç¿ëÀÚÀÓÀ» ¾Ë·ÁÁÙ ¼ö ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸ CookieStore´Â ¾ÛÀ» ´Ù½Ã ½ÇÇàÇÏ¸é »õ·Î¿î cookie¸¦ »ý¼ºÇϱ⶧¹®¿¡ ´Ù½Ã ·Î±×ÀÎÇؾßÇÏ°í,
±×·¸°Ô µÈ´Ù¸é ¸Å¹ø ½ÇÇà½Ã¸¶´Ù ·Î±×ÀÎÀ» ÇØÁÖ¾î¾ß ÇÏ´Â ÀÛ¾÷À» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
·Î±×ÀÎȽ¼öÁý°è³ª ±âŸ ·Î±×Àνà ÇÊ¿äÇÑ Á¤º¸³ª µ¥ÀÌÅ͸¦ ¹Þ±âÀ§Çؼ ½ÇÇà½Ã¸¶´Ù ·Î±×ÀÎÀÌ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ°ÚÁö¸¸,
¾î·µç ½ÇÇàÇÒ¶§¸¶´Ù »õ·Î¿î ÄíÅ°°ªÀÌ »ý±â´Â°ÍÀº Ŭ¶óÀ̾ðÆ®¿¡°Ô³ª ¼¹ö¿¡°Ô³ª ÁÁÁö ¾ÊÀº ¹æ½ÄÀÏ °ÍÀÔ´Ï´Ù.
°°Àº »ç¿ëÀÚ°¡ »ç¿ëÇÔ¿¡µµ ºÒ±¸ÇÏ°í ÄíÅ°°¡ »õ·Î ¸¸µé¾îÁö±â¶§¹®¿¡ ¼¹ö´Â °è¼Ó »õ·Î¿î ¼¼¼ÇÀ» »ý¼ºÇÏ°Ô µÇ°í ÀÌ´Â ³ªÁß¿¡ ÀǵµÇÏÁö ¾ÊÀº ¹®Á¦¸¦ ¾ß±â½Ãų ¼ö ÀÖ½À´Ï´Ù.
Retrofit¿¡¼ »ç¿ëÇÏ´Â Okhttp¸¦ ÀÌ¿ëÇÏ¿© ½ÇÇà½Ã¸¶´Ù Ç×»ó °°Àº ÄíÅ°°ªÀ» À¯ÁöÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ Æ÷½ºÆà Çغ¸°Ú½À´Ï´Ù.
¿ä¾à
1. ·Î±×ÀÎÇÑµÚ ¹ÞÀº Response¿¡¼ ÄíÅ°Á¤º¸¸¦ °¡Á®¿Â´Ù.
2. °¡Á®¿Â ÄíÅ°Á¤º¸¸¦ ¾Èµå·ÎÀ̵åÀÇ SharedPreferences¿¡ ÀúÀåÇصдÙ.
3. ÀÌÈÄ ¼öÇàµÇ´Â Request¸¶´Ù SharedPreferences¿¡¼ ÄíÅ°¸¦ °¡Á®¿Í¼ Header¿¡ Ãß°¡Çؼ º¸³½´Ù.
±¸Çö ¹æ¹ýÀº »ý°¢º¸´Ù °£´ÜÇÕ´Ï´Ù.
Response·ÎºÎÅÍ ÄíÅ°Á¤º¸¸¦ °¡Á®¿Í¼ Preference¿¡ ÀúÀåÇÏ´Â ReceivedCookiesInterceptorŬ·¡½º¸¦ ¸¸µé¾î ÁÝ´Ï´Ù.
Request¸¶´Ù Preference¿¡ ÀúÀåµÇ¾îÀÖ´Â ÄíÅ°°ªÀ» ÇÔ²² Header¿¡ ³Ö¾îÁÖ´Â AddCookiesInterceptorŬ·¡½º¸¦ ¸¸µé¾î ÁÝ´Ï´Ù.
2°³ÀÇ ReceivedCookiesInterceptor, AddCookiesInterceptorŬ·¡½º´Â ¾Æ·¡ ¼Ò½º¿¡¼ È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
(SharedPreferences ¿¡ ÄíÅ°Á¤º¸¸¦ ÀúÀåÇÏ°í °¡Á®¿À´Â ºÎºÐÀº ¿øÇϽô ¹æ¹ýÀ¸·Î ÆíÇÏ°Ô ¸¸µå½Ã¸é µË´Ï´Ù)
OkHttpClient client = new OkHttpClient();
// ÄíÅ°¸¦ Prefreence¿¡ ÀúÀåÇÏ°í °¡Á®¿È
client.interceptors().add(new AddCookiesInterceptor());
client.interceptors().add(new ReceivedCookiesInterceptor());
2.0 ÀÌÀüÀÇ ¹öÀüÀ» »ç¿ëÇÏ°í °è½Å´Ù¸é À§¿¡¼ ¸¸µç client¸¦ °¡Áö°í OkClient Ŭ·¡½º¸¦ ¸¸µé¾îÁÖ°í ÀÌ Å¬¶óÀ̾ðÆ®¸¦ RestAdapter¿¡ ¼³Á¤ÇØÁÖ½Ã¸é µË´Ï´Ù.
OkClient serviceClient = new OkClient(client);
¾î¶§¿ä? Âü ½±ÁÒ?
ÀÌ»óÀ¸·Î Retrofit¿¡¼ Interceptor¸¦ ÀÌ¿ëÇØ ÄíÅ°/¼¼¼Ç À¯ÁöÇÏ´Â ¹æ¹ý(ÄíÅ°¸¦ »©µ¹¸®±â)¿¡ ´ëÇØ Æ÷½ºÆà Çغ¸¾Ò½À´Ï´Ù.
°¨»çÇÕ´Ï´Ù.
Ãâó: https://gun0912.tistory.com/50?category=560271 [¹Ú»ó±ÇÀÇ »ðÁúºí·Î±×]