Heim  >  Artikel  >  Java  >  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?

Susan Sarandon
Susan SarandonOriginal
2024-11-17 13:12:02137Durchsuche

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. Die Standard-Java-Laufzeitumgebung hängt jedoch 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 mit 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, nutzte der Entwickler Netcat, um auf eingehende HTTP-Anfragen zu warten und beobachtete, 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 URLConnections 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.

Das obige ist der detaillierte Inhalt vonWie lege ich einen benutzerdefinierten Benutzeragenten für URLConnections in Java ohne den Java Runtime Identifier fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn