Java: muestra la solicitud de una conexión HttpURLConnection antes de enviar

Quiero hacer algunas llamadas API a un servidor usandoHttpURLConnection. Pero las solicitudes no son exitosas, devolviendo:

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

Así que quiero verificar cuál es el contenido "real" que se está enviando al servidor. Por contenido real me refiero a la solicitud HTTP exacta.

¿Alguna idea de cómo puedo ver esto?

Editar: Basado en las primeras respuestas aquí, debería aclarar mi problema: quiero evitar el uso de un programa externo como HTTP sniffer o cualquier otra cosa y esperaba que haya una función o propiedad o lo que sea que contenga la información que estoy buscando.

Si ese no es el caso, ¿alguien sabe si esta información se puede reconstruir manualmente (por ejemplo, llamando a varias funciones como getRequestMethod (), etc.)

Me enfrento a este problema con bastante frecuencia, por lo que vale la pena el esfuerzo de desarrollar esa funcionalidad yo mismo. Solo necesito saber cómo :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta