ホームページ >Java >&#&チュートリアル >Java で HTTP URL を適切にエンコードするにはどうすればよいですか?

Java で HTTP URL を適切にエンコードするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 19:18:12864ブラウズ

How to Properly Encode HTTP URLs in Java?

Java での HTTP URL アドレスのエンコード

Java では、HTML フォーム データのエンコードに java.net.URLEncoder ユーティリティがよく使用されます。ただし、特定の文字の処理に制限があるため、HTTP URL のエンコードには適していない可能性があります。

HTTP URL を適切にエンコードする 1 つの方法は、java.net.URI クラスを利用することです。 URL ドキュメントによると、「URI は、特定の状況でコンポーネント フィールドのエスケープを実行します。」

URI を使用して HTTP URL をエンコードするには、複数の引数を持つ URI オブジェクトを作成します。

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

結果の URI では不正な文字がエスケープされ、期待どおりの動作が行われます。

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

URI では不正な文字のみがエスケープされることに注意してください。非 ASCII 文字の場合、toASCIIString メソッドを使用して URI を US-ASCII 文字のみを含む文字列に変換できます。

String request = uri.toASCIIString();

クエリを含む URL の場合は、URI の 5 パラメーター コンストラクターを使用して指定します。 URL パスとクエリ文字列の両方:

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

このアプローチは、HTTP URL をエンコードするためのより堅牢で包括的なソリューションを提供します。 Java では。

以上がJava で HTTP URL を適切にエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。