2013-09-22 68 views
17

我有一個涉及httprequest的bug,有時會發生,所以我想在發生這種情況時記錄HttpGet和HttpPost請求的內容。如何打印httprequest請求的內容?

所以,讓我們說,我創建HTTPGET這樣的:

HttpGet g = new HttpGet(); 
g.setURI(new URI("http://www.google.com")); 
g.setHeader("test", "hell yeah"); 

這是字符串表示,我想獲得:

GET/HTTP/1.1 
Host: www.google.com 
test: hell yeah 

隨着發佈請求,我會也喜歡獲取內容字符串。

什麼是最簡單的方法來做它在java的android?

回答

52

可以使用打印請求類型:

request.getMethod(); 

您可以打印所有的頭這裏所說:

Enumeration<String> headerNames = request.getHeaderNames(); 
while(headerNames.hasMoreElements()) { 
    String headerName = headerNames.nextElement(); 
    System.out.println("Header Name - " + headerName + ", Value - " + request.getHeader(headerName)); 
} 

要打印所有的請求參數,使用這個:

Enumeration<String> params = request.getParameterNames(); 
while(params.hasMoreElements()){ 
String paramName = params.nextElement(); 
System.out.println("Parameter Name - "+paramName+", Value - "+request.getParameter(paramName)); 
} 

requestHttpServletRequest的實例

您可以根據需要美化輸出。

+2

提示:還要指定'Enumeration'的類型(*例如* Enumeration ')以避免不必要的IDE錯誤並正確使用泛型。 –

+0

添加'Enumeration '也使得轉換爲String不必要。 –

+0

或者也許枚舉