次のような URL があります: product//excerpts?feature=picture+modes
ブラウザからこの URL にアクセスすると、バックエンドは「product//excerpts?feature=picture+modes」としてリクエストを受け取ります。
Web サーバー側では、セパレータとして + を使用しています。したがって、feature=picture+modes は、画像とモードの 2 つの機能があることを意味します。
URLに移動してそのコンテンツを取得するスクリプト(Java)を作成および自動化しました。このスクリプトを実行すると、バックエンドはリクエストを次のように受け取ります: "product/B000NK6J6Q/excerpts/feature=picture%2Bmodes"
これは、スクリプト (Java) 内で + を %2B に変換する URLEncoder.encode を使用し、このエンコードされた URL をサーバーに送信するためです。
Java が提供する urlEncoder とブラウザ (FF/IE) に存在するものとが異なるのはなぜですか。どうすればそれらを同じにできますか? それらをデコードするにはどうすればよいですか?(URLDecoder.decode の '+' はスペースを与えます) また、慣例 (および仕様?) に従って区切り文字として '+' を使用していますか?
実践