2013-09-22 2 views
17

У меня есть ошибка, связанная с httprequest, которая иногда случается, поэтому я хочу регистрировать контент запроса 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)); 
} 

Для печати всех запросов Params, используйте:

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

request является примером HttpServletRequest

Вы можете украсить выходы в соответствии с вашими потребностями.

+2

Совет: также укажите тип 'Enumeration' (* например. *' Enumeration '), чтобы избежать нежелательных ошибок IDE и использовать дженерики должным образом. –

+0

Добавление 'Enumeration ' также делает ненужным приведение в String. –

+0

Или, возможно, перечисление

Смежные вопросы