के साथ रेट्रोफिट 2 में सामान्य पथ पैरामीटर को बदलें, मेरे पास समान बेस यूआरएल के साथ कुछ सेवा यूआरएल हैं। कुछ यूआरएल के लिए कुछ सामान्य उपयोग किए गए पैरामीटर होंगे, उदाहरण के लिए apiVersion
या locale
। लेकिन उन्हें हर यूआरएल में होना जरूरी नहीं है, इसलिए मैं उन्हें बेस यूआरएल में नहीं जोड़ सकता।okhttp
.../api/{apiVersion}/{locale}/event/{eventId}
.../api/{apiVersion}/{locale}/venues
.../api/{apiVersion}/configuration
मैं इन पैरामीटर को रेट्रोफिट इंटरफ़ेस में जोड़ना नहीं चाहता हूं। रेट्रोफिट 1 में, मैंने एक इंटरसेप्टर बनाया और प्रत्येक यूआरएल के लिए इन सामान्य पथ पैरामीटर को भरने के लिए RequestFacade.addPathParam(..., ...)
का उपयोग किया।
रेट्रोफिट 2 के लिए, मुझे okhttp के साथ ऐसा करने का उचित तरीका नहीं दिख रहा है। एकमात्र तरीका यह है कि मैं अभी यह संभव देख रहा हूं HttpUrl
Chain.request().httpUrl();
से okhttp Interceptor
में प्राप्त करें और इसे स्वयं में हेरफेर करें, लेकिन मुझे नहीं पता कि यह जाने का सबसे अच्छा तरीका है या नहीं।
क्या कोई भी okhttp Interceptor
में पथ पैरामीटर को प्रतिस्थापित करने के लिए बेहतर तरीके से आया है?
लेखन के समय मैं रेट्रोफिट का उपयोग कर रहा हूं: 2.0.0-beta2 और okhttp: 2.7.2।
इस जवाब http://stackoverflow.com/a/31002094 पर एक नज़र डालें। – mtotschnig
@mtotschnig उस धागे पर कोई अद्यतित उत्तर नहीं है (OkHttp 3+ और Retrofit 2+ का उपयोग करके)। – Singed
@ उत्तर देने के लिए मैं रेट्रोफिट 2 और ओकेएचटीपी 3 – mtotschnig