मैं ओकेएचटीपी लाइब्रेरी के माध्यम से अपने http कॉल को लागू करता हूं। सबकुछ ठीक काम करता है, लेकिन मैंने देखा कि, जब मैं प्रतिक्रिया की स्ट्रिंग के रूप में शरीर को IllegalStateException
पर फेंक दूंगा। यही है, मैं करता हूं (उदाहरण के लिए): Log.d("TAG", response.body().string())
और इसके बाद मैं वास्तव में processResponse(response.body().string())
जैसे स्ट्रिंग का उपयोग करना चाहता हूं। लेकिन वह दूसरी कॉल संदेश closed
के साथ अपवाद फेंकता है।ओकेएचटीपी प्रतिक्रिया की बॉडी स्ट्रिंग तक पहुंचने से दो बार परिणाम होता है IllegalStateException: बंद
यह कैसे संभव हो सकता है कि एक स्ट्रिंग तक पहुंचने से विफलता में दो बार परिणाम हो? मैं कुछ मानों (जैसे हेडर, बॉडी, स्टेटसोड) को बचाने के लिए केवल एक रैपर/डमी ऑब्जेक्ट जोड़ने की ज़रूरत के बिना उस प्रतिक्रिया को संसाधित करना चाहता हूं।
मुझे उम्मीद कर रहा था कि मैं केवल 'प्रतिक्रिया' ऑब्जेक्ट का पुन: उपयोग कर सकता हूं। OkHttp का उपयोग करने से पहले मैंने एक कस्टम ApiResult ऑब्जेक्ट लौटाया जहां मैंने अभी सभी प्रासंगिक जानकारी सहेजी थी, लेकिन यह सिर्फ एक डुप्लिकेट आईएमओ है। – degill
शायद आपको github पर यह [मुद्दा] (https://github.com/square/okhttp/issues/1240) चेकआउट करना चाहिए। – penkzhou
मैं आपका पॉइंट देखता हूं। मुझे लगता है कि वे इसे परिणाम को कैश किए बिना जितना संभव हो उतना कम स्तर के रूप में रखना चाहते थे जिसे कभी भी –