Anpassen des Benutzeragenten für Java URLConnections
Wenn Sie mithilfe von Javas URLConnection eine Verbindung zu einer Webseite herstellen, möchten Sie möglicherweise einen benutzerdefinierten Benutzer festlegen Agent. Dies wird häufig verwendet, um das Verhalten eines bestimmten Webbrowsers nachzuahmen oder Ihre Anwendung zu identifizieren. Versuche, einen nicht standardmäßigen Benutzeragenten festzulegen, führen jedoch häufig dazu, dass der Standardwert angehängt wird.
Lösung:
In früheren Versionen von Java wurde ein benutzerdefinierter Benutzer festgelegt Agent über setRequestProperty("User-Agent", "custom_agent") am Ende "Java/xx" angehängt. Dieses Problem wurde in Java 1.6.30 und neuer behoben.
Beispiel:
import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); System.out.println(connection.getRequestProperty("User-Agent")); } }
In Java 1.6.30 oder höher gibt dieser Code „Mozilla /5.0“ ohne das angehängte „Java/xx“.
Netcat Überprüfung:
Um zu überprüfen, ob der benutzerdefinierte Benutzeragent verwendet wird, können Sie einen Port mit netcat abhören:
$ nc -l -p 8080
Wenn der obige Code ausgeführt wird, sollten Sie sehen der benutzerdefinierte Benutzeragent in den von Netcat empfangenen HTTP-Headern.
Alternative Lösungen:
Wenn Sie immer noch Probleme mit dem Anhängen von „Java/xx“ in älteren Java-Versionen haben, können Sie versuchen, eine HTTP-Bibliothek eines Drittanbieters zu verwenden, mit der Sie den User-Agent-Header vollständig steuern können.
Das obige ist der detaillierte Inhalt vonWie kann ich einen benutzerdefinierten Benutzeragenten für Java URLConnections festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!