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 サイトの他の関連記事を参照してください。