„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie stelle ich den User-Agent in Java URLConnection richtig ein?

Wie stelle ich den User-Agent in Java URLConnection richtig ein?

Veröffentlicht am 16.11.2024
Durchsuche:577

How to Correctly Set the User-Agent in Java URLConnection?

Einstellen des Benutzeragenten einer Java-URLConnection

Beim Versuch, eine Webseite mit Java mit URLConnection zu analysieren und den Benutzeragenten auf eine bestimmte festzulegen Wert kann ein zusätzliches „Java/1.5.0_19“ am Ende angehängt werden. Dies ist auf eine Einschränkung in älteren Java-Versionen zurückzuführen.

Lösung (Java 1.6.30 und neuer)

In Java 1.6.30 und neuer ist dieses Problem aufgetreten wurde gelöst. Das Festlegen des Benutzeragenten mit setRequestProperty("User-Agent", "Mozilla ...") funktioniert jetzt korrekt, ohne die Java-Version anzuhängen.

Überprüfung

Zur Überprüfung Dazu können Sie mit Netcat einen Port abhören, der die rohen HTTP-Header eingehender Anfragen anzeigt. Ohne den Benutzeragenten festzulegen, werden in den Headern Folgendes angezeigt:

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Beim Festlegen des Benutzeragenten zeigen die Header stattdessen:

GET /foobar HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Beispielcode (Java 1.6.30)

Das folgende Codebeispiel zeigt, wie der Benutzeragent richtig eingestellt wird:

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class TestUrlOpener {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3