2012-09-11 20 views
6

Khi sử dụng DefaultHttpClient() từ Apache Commons HTTP Client, có thể hiển thị yêu cầu đầy đủ trong đầu ra bàn điều khiển cho mục đích gỡ lỗi hay không.Làm cách nào tôi có thể hiển thị tất cả Tiêu đề HTTP khi sử dụng DefaultHTTPClient?

Tôi đang gặp vấn đề với ứng dụng của tôi và tôi cảm thấy rằng cách dễ nhất để gỡ lỗi nó nó sẽ kiểm tra tất cả các dữ liệu được gửi bởi DefaultHTTPClient

Cảm ơn

Trả lời

7

Từ một câu trả lời trên StackOverflow. Điều này có thể dễ dàng được thực hiện bằng cách cho phép gỡ lỗi đăng nhập cho Client Apache 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

Tôi đã chèn mã này, nhưng tôi không nhận được thêm đăng nhập nào từ điều này. Có điều gì khác mà tôi phải làm để làm việc này không. – Radon8472

+0

Chúng ta có nên đặt nó trong một thuộc tính gradle? T____T – Isabelle

0

Khi bạn thực hiện yêu cầu bạn đang đi qua một nơi nào đó đối tượng HttpRequest. Nó có phương pháp getAllHeaders()

5

Dưới đây là một số mẫu mã:

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

Nếu bạn đang sử dụng Logback như khung đăng nhập của bạn, thêm dòng sau cấu hình để logback.xml/logback-test.xml tập tin của bạn:

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

<configuration scan="true"> 

    <!-- more config --> 

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

    <!-- more config --> 

</configuration> 

Có thêm cấu hình này, Logback của log appender bây giờ sẽ hiển thị thông tin hữu ích liên quan đến HttpClient về yêu cầu HTTP và các tiêu đề phản hồi, trong số những thứ khác.

Các vấn đề liên quan