Heim >Java >javaLernprogramm >Wie kodiere ich HTTP-URLs in Java richtig?

Wie kodiere ich HTTP-URLs in Java richtig?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 19:18:12847Durchsuche

How to Properly Encode HTTP URLs in Java?

Codieren von HTTP-URL-Adressen in Java

In Java wird das Dienstprogramm java.net.URLEncoder häufig zum Codieren von HTML-Formulardaten verwendet. Aufgrund der Einschränkungen bei der Verarbeitung bestimmter Zeichen ist es jedoch möglicherweise nicht für die Kodierung von HTTP-URLs geeignet.

Ein Ansatz zur ordnungsgemäßen Kodierung von HTTP-URLs ist die Verwendung der Klasse java.net.URI. Laut der URL-Dokumentation führt „URI unter bestimmten Umständen eine Escape-Funktion seiner Komponentenfelder durch.“

Um eine HTTP-URL mithilfe von URI zu kodieren, erstellen Sie ein URI-Objekt mit mehreren Argumenten:

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf",
    null);

Im resultierenden URI werden illegale Zeichen maskiert, was das erwartete Verhalten liefert.

http://search.barnesandnoble.com/booksearch/first%20book.pdf

Beachten Sie, dass der URI nur illegale Zeichen maskiert. Für Nicht-ASCII-Zeichen kann die toASCIIString-Methode verwendet werden, um den URI in eine Zeichenfolge umzuwandeln, die nur US-ASCII-Zeichen enthält:

String request = uri.toASCIIString();

Für URLs mit Abfragen verwenden Sie zur Angabe den 5-Parameter-Konstruktor von URI Sowohl der URL-Pfad als auch die Abfragezeichenfolge:

URI uri = new URI(
        "http", 
        "www.google.com", 
        "/ig/api",
        "weather=São Paulo",
        null);

Dieser Ansatz bietet eine robustere und umfassendere Lösung für die Codierung von HTTP-URLs Java.

Das obige ist der detaillierte Inhalt vonWie kodiere ich HTTP-URLs in Java richtig?. 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