Java: Exibir solicitação de uma HttpURLConnection antes de enviar

Quero fazer algumas chamadas de API para um servidor usandoHttpURLConnection. Mas os pedidos não são bem-sucedidos, retornando:

<error>
  <http_status>400 Bad Request</http_status>
  <message>Unexpected request Content-Type header ''. Expecting 'application/x-www-form-urlencoded'.</message>
</error>

Então, eu quero verificar qual é o conteúdo "real" que está sendo enviado ao servidor. Por conteúdo real, quero dizer a solicitação HTTP exata.

Alguma idéia de como eu posso ver isso?

Editar: Com base nas primeiras respostas aqui, devo esclarecer meu problema: quero evitar o uso de um programa externo, como o sniffer HTTP ou qualquer outra coisa, e esperava que houvesse uma função, propriedade ou qualquer outra coisa que contenha as informações que estou procurando.

Se não for esse o caso, alguém sabe se essas informações podem ser reconstruídas manualmente (por exemplo, chamando várias funções como getRequestMethod (), etc.)

Estou enfrentando esse problema muitas vezes, para que valha a pena o esforço de construir essa funcionalidade eu mesmo. Só preciso saber como :)

questionAnswers(3)

yourAnswerToTheQuestion