Frage

Mein Code ist wie folgt:

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();

Ist es in Ordnung, wenn ich die Header gesetzt, bevor ich den InputStream bekommen? Wird mein Header gesendet werden, oder es wird der Server finden Sie in der User-Agent-Standard URLConnection (falls vorhanden)?

War es hilfreich?

Lösung

Die Header müssen vor eingestellt werden, um die InputStream zu bekommen jede beeinflussen zu haben -. Ein IllegalStateException geworfen wird, wenn die Verbindung bereits geöffnet ist

Was der User-Agent Header speziell, es sollte gesendet werden, wenn es eingestellt wurde.

Sehen Sie das URLConnection JavaDoc.

Andere Tipps

Um die Frage zu beantworten, ist der Code korrekt. In dem Moment, getInputStream (), eine HTTP-GET an den Zielserver gesendet.

Eine Randnotiz auf User-Agenten, wenn Sie es nicht gesetzt, URLConnection wird den Standard eines wie auch immer, senden die lautet:

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

Ich würde davon abraten, Low-Level-Konstrukte wie URLConnection verwenden. Es gibt viele Bibliotheken für HTTP-Anforderungen zu senden, mit der prominenteste ist Apache HTTP-Client.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top