में अनुरोध निकाय को संशोधित करना मैं एंड्रॉइड एप्लिकेशन में ओकेएचटीपी क्लाइंट के साथ रेट्रोफिट 2 (2.0.0-बीटा 3) का उपयोग कर रहा हूं और अब तक सब कुछ बढ़ रहा है। लेकिन वर्तमान में मुझे ओकेएचटीपी इंटरसेप्टर के साथ समस्या का सामना करना पड़ रहा है। जिस सर्वर से मैं संचार कर रहा हूं वह अनुरोध के निकाय में पहुंच टोकन ले रहा है, इसलिए जब मैं ऑथ टोकन जोड़ने या प्रमाणीकरणकर्ता विधि को प्रमाणित करने के अनुरोध को रोकता हूं, तो मुझे अद्यतन ऑथ टोकन जोड़ने की आवश्यकता होती है, तो मुझे इस उद्देश्य के लिए अनुरोध के शरीर को संशोधित करने की आवश्यकता है । लेकिन ऐसा लगता है कि मैं केवल हेडर में डेटा जोड़ सकता हूं लेकिन चालू अनुरोध के शरीर में नहीं।रेट्रोफिट 2: ओकेएचटीपी इंटरसेप्टर
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (UserPreferences.ACCESS_TOKEN != null) {
// need to add this access token in request body as encoded form field instead of header
request = request.newBuilder()
.header("access_token", UserPreferences.ACCESS_TOKEN))
.method(request.method(), request.body())
.build();
}
Response response = chain.proceed(request);
return response;
}
});
किसी को कैसे मेरे पहुँच टोकन (पहली बार या टोकन ताज़ा के बाद अद्यतन) जोड़ने के लिए अनुरोध शरीर को संशोधित करने के रूप में सही दिशा करने के लिए मुझसे बात कर सकते हैं: कोड मैं अब तक लिखा है इस प्रकार है? सही दिशा में किसी भी सूचक की सराहना की जाएगी।
यह एक अच्छा विचार 'bodyToString में बफर बंद करने के लिए()' –
@ 3k thats की जरूरत नहीं लौटने से पहले, बफर नहीं करता है कुछ भी है कि निर्माता के अंदर बंद किया जा सकता का आवंटन किया जाएगा। https://github.com/square/okio/blob/master/okio/src/main/java/okio/Buffer.java#L59 – Fabian