---- जुलाई २०१ ९ ----
(स्प्रिंग बूट का उपयोग करके)
मुझे आश्चर्य हुआ कि स्प्रिंग बूट, यह सब शून्य विन्यास जादू के साथ है, रेस्टटेम्पलेट के साथ एक साधारण JSON प्रतिक्रिया निकाय का निरीक्षण या लॉग इन करने का आसान तरीका प्रदान नहीं करता है। मैंने यहां प्रदान किए गए विभिन्न उत्तरों और टिप्पणियों को देखा, और अपने स्वयं के आसुत संस्करण को साझा कर रहा हूं कि क्या (अभी भी) काम करता है और मुझे एक उचित समाधान की तरह लगता है, वर्तमान विकल्पों को देखते हुए (मैं स्प्रिंग बूट 2.1.6 का उपयोग ग्रेडल 4.4 के साथ कर रहा हूं) )
1. http प्रॉक्सी के रूप में फ़िडलर का उपयोग करना
यह वास्तव में काफी सुरुचिपूर्ण समाधान है, क्योंकि यह आपके स्वयं के इंटरसेप्टर बनाने या अंतर्निहित http क्लाइंट को अपाचे में बदलने के सभी बोझिल प्रयासों को दरकिनार कर देता है (नीचे देखें)।
Fiddler स्थापित करें और चलाएं
और फिर
-DproxySet=true -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888
अपने VM विकल्प में जोड़ें
2. Apache HttpClient का उपयोग करना
Apache HttpClient को अपने Maven या Gradle निर्भरता में जोड़ें।
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>
HttpComponentsClientHttpRequestFactory
RestTemplate के लिए RequestFactory के रूप में उपयोग करें । ऐसा करने का सबसे सरल तरीका होगा:
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
अपनी application.properties
फ़ाइल में DEBUG सक्षम करें (यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं)
logging.level.org.apache.http=DEBUG
यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करना होगा कि आपके पास एक लॉगिंग ढाँचा स्थापित है, जैसे कि स्प्रिंग-बूट-स्टार्टर निर्भरता का उपयोग करके spring-boot-starter-logging
।
3. एक इंटरसेप्टर का उपयोग करें
मैं आपको अन्य उत्तरों और टिप्पणियों में प्रस्तावों, काउंटर-प्रस्तावों और गोचरों के माध्यम से पढ़ने दूंगा और यदि आप उस रास्ते से नीचे जाना चाहते हैं तो अपने लिए निर्णय लें।
4. लॉग बॉडी के बिना URL और रिस्पॉन्स स्टेटस
यद्यपि यह शरीर को लॉग करने की बताई गई आवश्यकताओं को पूरा नहीं करता है, यह आपके REST कॉल को लॉग करना शुरू करने का एक त्वरित और सरल तरीका है। यह पूर्ण URL और प्रतिक्रिया की स्थिति प्रदर्शित करता है।
बस अपनी application.properties
फ़ाइल में निम्न पंक्ति जोड़ें (मान लें कि आप स्प्रिंग बूट का उपयोग कर रहे हैं, और मान लें कि आप स्प्रिंग बूट स्टार्टर निर्भरता का उपयोग कर रहे हैं जिसमें शामिल हैं spring-boot-starter-logging
)
logging.level.org.springframework.web.client.RestTemplate = डीबग
आउटपुट कुछ इस तरह दिखेगा:
2019-07-29 11:53:50.265 DEBUG o.s.web.client.RestTemplate : HTTP GET http://www.myrestservice.com/Endpoint?myQueryParam=myValue
2019-07-29 11:53:50.276 DEBUG o.s.web.client.RestTemplate : Accept=[application/json]
2019-07-29 11:53:50.584 DEBUG o.s.web.client.RestTemplate : Response 200 OK
2019-07-29 11:53:50.585 DEBUG o.s.web.client.RestTemplate : Reading to [org.mynamespace.MyJsonModelClass]