質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HttpWebRequest

HttpWebRequestとは.NETにおけるクラスであり、WebRequestクラスをHTTPに導入するものです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

895閲覧

rubyでapiを叩いたのですがレスポンスの中身をみたらレスポンスヘッダが表示されボディが表示されていない

widget11

総合スコア221

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HttpWebRequest

HttpWebRequestとは.NETにおけるクラスであり、WebRequestクラスをHTTPに導入するものです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1グッド

1クリップ

投稿2018/08/16 21:17

NET::HTTP CLIENTを用いてwebAPIを叩いてみたのですが変数resの中身がリクエストヘッダの内容しか入っていなかった為、レスポンスボディに書いてあるデータを取りたいですがどの様にすれば良いでしょうか。
以下がコードです。

def api(url) uri = URI.parse(url) req = Net::HTTP::Get.new(uri.request_uri) req["X-Auth-Key"] = 'xxxxxxxxxxxxxxxxxxxxx' req["Accept"] = 'application/json' https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true res = https.request(req) puts res.to_json end api('https://.......') #{"cache-control........

postmanだと以上の様にリクエストurlとヘッダを書いてGETリクエストを送ったらちゃんとJSONデータが返ってきていました。
そこでrubyで叩いてみようと思い叩いた結果をみたら、レスポンスヘッダの中身が入っていました。何を書き加えれば欲しいデータを取ってこれるでしょうか? また宜しくお願い致します。

kazuyakazuya👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のように変更するとよいのではないでしょうか。

  • レスポンスオブジェクトの本体を取得するようにする
  • リクエスト時にjson形式のデータを取得するように指定しているので、取得した値をjson形式に変換する処理は不要

diff

1 def api(url) 2 uri = URI.parse(url) 3 req = Net::HTTP::Get.new(uri.request_uri) 4 req["X-Auth-Key"] = 'xxxxxxxxxxxxxxxxxxxxx' 5 req["Accept"] = 'application/json' 6 https = Net::HTTP.new(uri.host, uri.port) 7 https.use_ssl = true 8 res = https.request(req) 9- puts res.to_json 10+ puts res.body 11 end

投稿2018/08/16 22:54

tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

widget11

2018/08/17 18:50

bodyというメソッドを知らなかったです!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問