0

Rubyプログラムでは、Base64文字列のパスワードを使用しているため、スラッシュを含めることができます。そのパスワードとユーザー名を使用してHTTPリクエストを実行します

username = "User"
password = "/Base/64/With/Slashes"
requestUrl = "http://#{username}:#{password}@company.com"
response = RestClient.get(requestUrl)

したがって、passwordスラッシュが含まれている場合、それらはURIのポートとして解釈され、無効なURIがあることを示すエラーメッセージが表示されます。明らかに、内部の各スラッシュは。passwordに置き換える必要があります%2F

を使用しようとしましたURI.escape()が、スラッシュには影響しません。

結果をHTTPリクエスト認証に使用できるように、Base64文字列をパーセントエスケープするにはどうすればよいですか?

4

1 に答える 1

1

@injektのコメントには正しい答えがありますが、答えとして少し詳しく説明したバージョンを次に示します。

CGI.escape()は、そのタスクに適したツールです。そのドキュメント:

URL-文字列をエンコードします。

于 2012-07-13T09:05:35.080 に答える