ホットペッパーのapiを使い、レストランのデータを取得したい
ホットペッパーのapiを使って、レストランのデータを取得しようと考えています。
rails runnerを使ってやろうと思っていましたが、上手くいかず、rails consoleで以下のコードを順に試してみました。
ruby
1 key_words = '東京 田町' 2 params = URI.encode_www_form({key: 'ここにはapiキーを入れてます', format: 'json', keyword: key_words}) 3 # URIを解析し、hostやportをバラバラに取得できるようにする 4 uri = URI.parse("https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?#{params}") 5 6 # 新しくHTTPセッションを開始し、結果をresponseへ格納 7 # hostはドメイン、portはポート番号 8 response = Net::HTTP.start(uri.host, uri.port) do |http| 9 # 接続時に待つ最大秒数を設定 10 http.open_timeout = 5 11 # 読み込み一回でブロックして良い最大秒数を設定 12 http.read_timeout = 10 13 # Net::HTTPResponseのインスタンスが返ってくる 14 http.get(uri.request_uri) 15 end
これで実行すると、400 Bad Requestが返ってきてしまいます。
理由を解明しようと思い、uri
には正しいものが入っているか確認しましたが、問題ありませんでした。uri.to_s
の値をブラウザのアドレスバーに打ち込むと、問題なくjsonが返ってきます。
uri.host
、uri.port
、uri.request_uri
の値も問題ありませんでした。
つまり、URL自体に問題は見つからないということだと思うのですが、その場合このエラーの原因は、他にどのようなことが考えられるでしょうか?
よろしくお願いします。
--追記--
エラーの理由が返ってきてないかと、response.messageを確認しましたが、Bad Request としか返ってきていませんでしたorz
あなたの回答
tips
プレビュー