ホームページ >Java >&#&チュートリアル >java.net.URI クラスを使用して Java で HTTP URL を適切にエンコードする方法

java.net.URI クラスを使用して Java で HTTP URL を適切にエンコードする方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-18 12:42:18220ブラウズ

How to Properly Encode HTTP URLs in Java Using the java.net.URI Class?

Java で HTTP URL を適切にエンコードする方法

Java で URL を操作する場合、URL を正しくエンコードして、サーバーによって正確に解釈されます。 java.net.URLEncoder は HTML フォームのエンコードには役立ちますが、HTTP URL エンコードに関しては不十分です。この記事では、java.net.URI クラスを使用して HTTP URL を効果的にエンコードする方法について説明します。

java.net.URI クラスは、URI および URL コンポーネントを操作およびエンコードする方法を提供します。 URI の単一引数コンストラクターは不正な文字をエスケープしないため、質問で説明されているようなエラーが発生します。この問題に対処するには、次のような複数の引数を持つコンストラクターを利用する必要があります。

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

このアプローチでは、不正な文字が効果的にエスケープされ、次のような望ましい結果が得られます。

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

Itこのエンコーディングは不正な文字にのみ影響し、非 ASCII 文字には影響しないことに注意することが重要です。 US-ASCII 文字のみを含む String の場合、toASCIIString メソッドを使用できます:

URI uri = new URI("http", "search.barnesandnoble.com", "/booksearch/é", null);
String request = uri.toASCIIString();

これは、非 ASCII 文字を含むクエリを含む URL に特に役立ちます:

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

java.net.URI クラスを利用すると、HTTP URL を効果的にエンコードして、サーバーによって正しく処理され、正確な URL が得られるようになります。データの取得。

以上がjava.net.URI クラスを使用して Java で HTTP URL を適切にエンコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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