Cómo modificar el encabezado de un HttpUrlConnection

Estoy intentando mejorar un poco el documento HTML de Java pero estoy teniendo problemas con HttpUrlConntion . Una cosa es que algunos servidores bloquean una solicitud si el agente de usuario es una máquina virtual Java. Otro problema es que HttpUrlConnection no establece el campo de encabezado Referrer o Location . Dado que varios sitios usan estos campos para verificar que se haya accedido al contenido desde su propio sitio, también estoy bloqueado aquí. Por lo que puedo ver, la única solución es reemplazar el manejador de URL del protocolo HTTP. ¿O hay alguna forma de modificar el controlador HTTP predeterminado?

Abra la URL con URL.openConnection . Opcionalmente lanzado a HttpURLConnection . Llame a URLConnection.setRequestProperty / addRequestProperty .

El valor predeterminado del encabezado User-Agent se establece desde la propiedad del sistema "http.agent" . El PlugIn y WebStart le permiten establecer esta propiedad.

Si utilizas Apache HttpClient para administrar tu conectividad HTTP programática, obtienes una API extremadamente útil que hace que la creación de conexiones (y la reconexión automática opcional falle), estableciendo Encabezados, Publicaciones vs. Obtiene, métodos prácticos para recuperar el contenido devuelto y mucho más. .

Resolví mi problema. Podemos simplemente enviar el encabezado a application / json y pasar el cuerpo como un objeto json. Eso simplemente resuelve el problema.