2013-09-22 66 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

或者也许枚举