3
にスラッシュとURLを解析する方法:私はこの形式のURLを持っているのuserinfo部分
https://clientjiberish:[email protected]/users?username=tralala
私が行うとき:
url = 'https://clientjiberish:[email protected]/users?username=tralala'
uri = URI(url)
私は私が必要なものをすべて取得します。
uri.host => "api.example.com"
uri.userinfo => "clientjiberish:clientsecretjiberish"
uri.path => '/users'
uri.scheme => 'https'
userinfo部分にスラッシュがあると問題が発生します。私はAPIキーを提供するAPIを変更する権限がないので、URIの上記部分を抽出する方法を理解する必要があります。ここで
あなたはURIをテストすることができるものの例です:
url = 'https://clientjiberish:client/[email protected]/users?username=tralala'
uri = URI(url)
エラー:
URI::InvalidURIError: bad URI(is not URI?)
私はあなたがこのようなあなた自身のパーサーを作成できることを発見した:
parser = URI::Parser.new(:RESERVED => ";/?:@&=+$,\\[\\]")
uri = parser.parse(url)
しかし、それを動作させるには正規表現について十分に分かりません。
'%2F'で' client/secretjiberish'のスラッシュからエスケープできませんか? – Rashmirathi
@Rashmirathi どうすればアクセスできますか?私が次のようなことをした場合: escaped_url = URI.escape(url、 '/')そしてURI(url)URIメソッドを使うことはできません。 –
私は、 'clientjiberish:client/secretjiberish'の部分でそれをエスケープするだけなので、urlは 'https:// clientjiberish:client%[email protected]/users?username = tralala'になります。 – Rashmirathi