Net::HTTP を使用して、GET 要求を Twitter に送信しようとしました (プライバシー上の理由からユーザー ID を置き換えました)。
url = URI.parse("http://api.twitter.com/1/friends/ids.json?user_id=12345")
resp = Net::HTTP.get_response(url)
これにより、Net::HTTP で例外がスローされます。
NoMethodError: 未定義のメソッド
empty?' for #<URI::HTTP:0x59f5c04> from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1470:in
の初期化'
偶然にも、URI.encode
以前に使用されていた同様のコード スニペットを見つけたURI.parse
ので、それをコピーして再試行しました。
url = URI.parse(URI.encode("http://api.twitter.com/1/friends/ids.json?user_id=12345"))
resp = Net::HTTP.get_response(url)
今は正常に動作しますが、なぜですか?私が言及した URL にはエスケープが必要な予約文字はありませURI.encode
んget_response
。