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!