Imprimir toda a requisição HTTP de um servlet

Estou em um servlet, ja tentei de tudo e não sei o que usar no HttpServletRequest para imprimir todo o cabeçalho HTTP.

Quero imprimir no console toda a requisição para fazer 1 teste. Quero saber o que um programa me manda…

Tentei assim e não Deu…

[code]public class HttpRequisicaoController extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public HttpRequisicaoController() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	execute(request, response);
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	execute(request, response);
}

private void execute(HttpServletRequest request, HttpServletResponse response){
	System.out.println(request.toString());
}

}[/code]

a resposta foi : org.apache.catalina.connector.RequestFacade@14340bb

Já tentei outros métodos e nada…

“Saber o que um programa me manda”.
Imagino que ele ti encaminhe informações via parameter ou attribute, cheque os seguintes métodos da classe HttpServletRequest.
request.getParameterMap() para identificar as chaves e valores de todos os parâmetros e o request.getAttributeNames() para obter o nome de todos os atributos existentes no request.

O toString do seu request não retorna o que você espera pois está com a implementação padrão, então ele retorna a sua referência na memória.

[quote=RoxRicardo]“Saber o que um programa me manda”.
Imagino que ele ti encaminhe informações via parameter ou attribute, cheque os seguintes métodos da classe HttpServletRequest.
request.getParameterMap() para identificar as chaves e valores de todos os parâmetros e o request.getAttributeNames() para obter o nome de todos os atributos existentes no request.

O toString do seu request não retorna o que você espera pois está com a implementação padrão, então ele retorna a sua referência na memória.[/quote]

Como eu disse no texto, quero imprimir todo o cabeçalho de requisição http não só os parametros, quero ver tudo, pois também recebo um xml e gostaria de analisar. Se não me engano, o getParameterMap() como o próprio nome diz, só me entrega os parametros, preciso de toda a informação enviada por http.

Para mostrar as informações dos headers use os métodos request.getHeaderNames() e request.getHeader(). Juntando com o mapa de parâmetros você terá tudo que veio na requisição.

Agora se o que quer é imprimir o request HTTP “cru”, como veio da rede, fica mais complicado… via código não tem acesso, veja se seu servidor possui essa funcionalidade, ou mesmo se o cliente tem condições de logar as requisições.

Como eu disse, o .toString() está com a implementação padrão, se você quer todas as informações, muito provavelmente terá que criar um método que dê os gets necessários e agrupe em uma string só.

Fiz assim então XD axo que consegui… Vou ver todo o cabeçalho e tentar fazer o programa enviar os dados para essa url e eu vou ver o que sai…

[code]@RequestMapping("retorno")
public String retorno(HttpServletResponse httpresp, HttpServletRequest httpreq, Model model) throws IOException{
	
	Enumeration headerNames = httpreq.getHeaderNames();
	List<String> lHeaderN = new ArrayList<String>(); 
	String headerNamesForHtml= new String();
	
	while (headerNames.hasMoreElements()) {
		String HeaderName = (String)headerNames.nextElement();
		lHeaderN.add(HeaderName+"="+httpreq.getHeader(HeaderName));
		headerNamesForHtml += (String)headerNames.nextElement() + "=" + httpreq.getHeader(HeaderName)+"<br/>";
	}
	model.addAttribute("cabecalho", headerNamesForHtml);
	System.out.println(lHeaderN.toString());
	
	return "retorno";
}[/code]