„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 lege ich einen benutzerdefinierten Benutzeragenten für URLConnections in Java ohne den Java Runtime Identifier fest?

Wie lege ich einen benutzerdefinierten Benutzeragenten für URLConnections in Java ohne den Java Runtime Identifier fest?

Veröffentlicht am 22.12.2024
Durchsuche:965

How to Set a Custom User Agent for URLConnections in Java without the Java Runtime Identifier?

Anpassen des Benutzeragenten für URLConnections in Java

Bei der Verwendung von URLConnection in Java zum Abrufen von Webinhalten ist häufig die Einrichtung eines benutzerdefinierten Benutzeragenten erforderlich genaues Website-Crawling und Benutzersimulation. Allerdings hängt die Standard-Java-Laufzeitumgebung ihre eigene Kennung an die Zeichenfolge des Benutzeragenten an, was in bestimmten Szenarien möglicherweise nicht wünschenswert ist.

Die Abfrage

Ein Java-Entwickler hat um Hilfe gebeten beim Festlegen eines Benutzeragenten ohne das von der Laufzeit angehängte Suffix „Java/1.5.0_19“. Der Benutzer hat einen Codeausschnitt bereitgestellt, der veranschaulicht, wie er versucht hat, den Benutzeragenten mithilfe von setRequestProperty() festzulegen.

Die Lösung

Glücklicherweise ist in Java 1.6.30 und höher Das Festlegen des Benutzeragenten über setRequestProperty("User-Agent", "") funktioniert einwandfrei, ohne dass zusätzliche Java-Laufzeitinformationen hinzugefügt werden. Um dies zu demonstrieren, verwendete der Entwickler Netcat, um auf eingehende HTTP-Anfragen zu warten, und stellte fest, dass der benutzerdefinierte Benutzeragent erfolgreich ohne das Java-Suffix gesendet wurde.

Vollständige Implementierung

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

public class CustomUserAgent {

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

}

Durch die Nutzung dieses Ansatzes können Entwickler Benutzeragenten für ihre URL-Verbindungen in Java ohne unerwünschte Java-spezifische Ergänzungen effektiv festlegen und so das gewünschte Verhalten für ihr Web Scraping oder andere Kommunikationsaufgaben sicherstellen.

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