Pregunta

Mi código es como el siguiente:

URLConnection cnx = address.openConnection();
cnx.setAllowUserInteraction(false);         
cnx.setDoOutput(true);
cnx.addRequestProperty("User-Agent", 
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
InputStream is = cnx.getInputStream();

¿Está bien si configuro los encabezados antes de obtener el InputStream ? ¿Se enviará mi encabezado o el servidor verá el agente de usuario predeterminado de URLConnection (si lo hay)?

¿Fue útil?

Solución

Los encabezados deben configurarse antes de que el InputStream tenga algún efecto: se lanzará una IllegalStateException si la conexión ya está abierta .

En cuanto al encabezado User-Agent específicamente, debe enviarse si se ha configurado.

Consulte URLConnection JavaDoc.

Otros consejos

Para responder la pregunta, el código es correcto. En el momento en que getInputStream (), se envía un get HTTP al servidor de destino.

Una nota al margen sobre el agente de usuario, si no la configura, URLConnection enviará la predeterminada de todos modos, que es:

User-Agent: Java/1.6.0_24 (varies depending on your java version)

Aconsejaría contra el uso de construcciones de bajo nivel como URLConnection. Hay muchas bibliotecas para enviar solicitudes HTTP, la más destacada es el Cliente Apache HTTP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top