2012-09-11 12 views
6

अपाचे कॉमन्स HTTP क्लाइंट से DefaultHttpClient() का उपयोग करते समय, डिबगिंग उद्देश्यों के लिए कंसोल आउटपुट में पूरा अनुरोध दिखाना संभव है।डिफ़ॉल्ट एचटीटीपी क्लाइंट का उपयोग करते समय मैं सभी HTTP शीर्षलेख कैसे प्रदर्शित कर सकता हूं?

मैं अपने आवेदन के साथ समस्याएं आ रही हैं और मुझे लगता है कि यह डिबग करने के लिए सबसे आसान तरीका है यह द्वारा DefaultHTTPClient

धन्यवाद भेजा

उत्तर

7

StackOverflow पर एक और उत्तर से के लिए इस ट्यूटोरियल http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Request-Headers.html देख सकते हैं। यह आसानी से अपाचे HTTP क्लाइंट के लिए डीबग लॉगिंग को सक्षम करने से किया जा सकता है:

java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST); 
java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST); 

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.httpclient.wire", "debug"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "debug"); 
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "debug"); 
+0

मैंने यह कोड डाला, लेकिन मुझे इससे कोई अतिरिक्त लॉगिंग नहीं मिली है। क्या मुझे कुछ और करना है जो यह काम करता है। – Radon8472

+0

क्या हमें इसे एक ग्रेडल गुणों में रखना चाहिए? T____T – Isabelle

0

जब आप अनुरोध को निष्पादित आप गुजर रहे हैं सभी डेटा का निरीक्षण किया जाएगा कहीं HttpRequest वस्तु। यह विधि getAllHeaders()

12

आप इस

Enumeration headerNames = request.getHeaderNames(); 
while(headerNames.hasMoreElements()) { 
    String headerName = (String)headerNames.nextElement(); 
    out.println("" + headerName); 
    out.println("" + request.getHeader(headerName)); 
} 

की तरह सभी हेडर मिल अधिक जानकारी

5

यहाँ एक नमूना कोड:

import java.util.Arrays; 
    import org.apache.http.Header; 
    import org.apache.http.HttpResponse; 
    import org.apache.http.client.HttpClient; 
    import org.apache.http.client.methods.HttpGet; 
    ... 
    HttpResponse response; 
    ... 
    HttpGet httpGet = new HttpGet(serviceURL); 
    response = httpclient.execute(httpGet); 
    ... 
    // Print all headers 
    List<Header> httpHeaders = Arrays.asList(response.getAllHeaders());   
    for (Header header : httpHeaders) { 
     System.out.println("Headers.. name,value:"+header.getName() + "," + header.getValue()); 
    } 
0

आप अपने प्रवेश ढांचे के रूप में Logback उपयोग कर रहे हैं, निम्नलिखित जोड़ें अपने logback.xml/logback-test.xml फाइल करने के लिए विन्यास:

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="true"> 

    <!-- more config --> 

    <logger name="org.apache.http" level="DEBUG"/> 

    <!-- more config --> 

</configuration> 

इस विन्यास, Logback के जोड़ा करने के बाद लॉग एपेंडर अब अन्य अनुरोधों के साथ HTTP अनुरोध और प्रतिक्रिया शीर्षलेखों के बारे में उपयोगी HttpClient से संबंधित जानकारी दिखाएंगे।

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

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