2012-05-31 8 views
14

डिबगिंग उद्देश्यों के लिए, मैं कच्चे अनुरोध को देखना चाहता हूं जो भेजा जा रहा है। क्या HttpPost या HttpClient के एपीआई से सीधे HTTP मॉनीटर के बिना इसे प्राप्त करने का कोई तरीका है?अपाचे HTTP क्लाइंट का उपयोग करना - इसे भेजने से पहले कच्चे अनुरोध स्ट्रिंग को कैसे देख सकता है?

मैं कुछ "लगभग" डुप्लिकेट सवाल मिला, लेकिन इस विशेष रूप से एक

उत्तर

20

आप अपाचे HttpClient (उदाहरण के 4.3.2 के लिए परीक्षण) के लिए कुछ वातावरण चर सेट कर सकते हैं के लिए नहीं।

System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.impl.conn", "DEBUG"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.impl.client", "DEBUG"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.client", "DEBUG"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "DEBUG"); 
+2

अपने पर्यावरण के आधार पर अधिक लॉगिंग विकल्पों के लिए, https://hc.apache.org/httpcomponents-client-ga/logging.html – vinksharma

+0

@Eran Medan भी देखें यदि आप इसे विशिष्ट के लिए करना चाहते हैं तो HttpRequestInterceptor भी है –

-3

इस प्रयास करें::

HttpClient client = new HttpClient(); 
PostMethod method = new PostMethod(url); 

method.setParameter(...., ....); 

पोस्ट में पैरामीटर को पुनः प्राप्त करने यूआरआई

System.out.println("getUri: " + method.getURI()); 

पुनः प्राप्त करने के

System.setProperty("org.apache.commons.logging.Log","org.apache.commons.logging.impl.SimpleLog"); 
System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.wire", "DEBUG"); 

भी डिबगिंग के लिए कुछ और चर रहे हैं

method.getRequestEntity().writeRequest(System.out); 
+1

सिस्टम.आउट को –

+1

लॉगिंग के लिए प्रोत्साहित नहीं किया जाना चाहिए, मुझे यह उदाहरण पसंद आया, क्योंकि 'method.getRequestEntity()। writeRequest' ने मुझे अनुरोध मुद्रित करने में मदद की। – GameScripting

0
org.apache.http.client.fluent.Request#viaProxy 

इस विधि आपके अनुरोध प्रॉक्सी सर्वर के माध्यम से पारित है, तो आपके उदाहरण फ़िडलर के लिए एक स्थानीय प्रॉक्सी सर्वर शुरू कर सकते हैं, कर सकते हैं, तो यह डिबगिंग प्रॉक्सी http अनुरोध और प्रतिक्रिया के विवरण दिखा सकते हैं।

संबंधित मुद्दे