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

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

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

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

HTTP

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

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

Q&A

解決済

1回答

3015閲覧

RailsでHTTPClientでPOSTする際にリクスエストボディを階層構造にする

lyzmfeqpxs54

総合スコア237

Ruby

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

HTTP

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

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

0グッド

1クリップ

投稿2017/11/21 14:51

いつもお世話になります。

Ralsで以下のようにHTTPClientを用いてリクエストを行っているのですが、受け側の方で階層構造としている部分がひとまとまりのデータのようになってしまいます。
※ 'c' => "{'c1' => '3', 'c2' => '4', 'c3' => '5'}}"
のような形

複数の階層を持つハッシュの形でリクスエストする方法をご教示いただけませんでしょうか。
よろしくお願いいたします。

ruby

1http_client = HTTPClient.new 2http_client.debug_dev = $stderr 3 4query = {'a' => '1', 'b' => '2', 'c' => {'c1' => '3', 'c2' => '4', 'c3' => '5'}} 5# post 6res = http_client.post('http://XX.XXX.XX.XX/YYYY/ZZZ', :body => query) 7result = JSON.parse(res.body) 8 9

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

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

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

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

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

guest

回答1

0

ベストアンサー

そもそも、HTTP POSTのリクエスト自体が、「キー→値」の結びつきでできていて、階層的なデータ構造ではありません

ただ、サーバサイドの実装にもよりますが、キー自体を配列形式にすれば、階層構造で受け取れるようになっていることもあります。

query = { 'a' => '1', 'b' => '2', 'c[c1]' => '3', 'c[c2]' => '4', 'c[c3]' => '5' }

投稿2017/11/21 22:31

maisumakun

総合スコア145121

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

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

lyzmfeqpxs54

2017/11/22 02:28

ご回答ありがとうございます。 勉強不足で恐縮ですが質問させてください。postmanなどを用いてJsonを階層構造でpostすることが可能なのは、それに合わせた解析を受け取り側行っているということでしょうか。
maisumakun

2017/11/22 02:40

1つ考えられることとしては、「そのままJSONを受け取るAPIだった」という可能性もあります。
lyzmfeqpxs54

2017/11/22 03:06

度々のご回答ありがとうございます。仮に「そのままJSONを受け取るAPIだった」とした場合HTTPClientではリクエストできないという解釈で良いでしょうか。その場合jsonを送るにはどのようなライブラリを使用すべきでしょうか。
lyzmfeqpxs54

2017/11/22 04:30

こういったものがあるのですね。 色々と勉強になりました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問