ruby 2.1.3
Rails 4.2.3
ローカルでのPCはmac
現在 NoMethodError: undefined method となり困っております。
以下状況の説明です。
APIを使ったサイト作成をしており、データをPOSTしたいと考えております。
#postする値 uri = URI.parse "https://XXXXXXXXXXXXXXXXXXXX.com" method = POST body = JSON.parse('{ "hogehogehogehoge": "hogehogehoge" }') headers = { "ACCESS-KEY" => key, "ACCESS-TIMESTAMP" => nonce, "ACCESS-SIGN" => signature, "Content-Type" => 'application/json' }
上記値を以下の様にPOSTしています。
https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true response = https.post(uri, method, body, headers) puts response.body
rails c の結果
NoMethodError: undefined method `<<' for #<Hash:0x007fe212802d38> from /Users/私の名前/.rbenv/versions/2.1.3/lib/ruby/2.1.0/net/protocol.rb:106:in `read'
undefined method <<'との事で、protocol.rb:106:in
read'を確認したのですが、このあたりはrails本体のプログラムなのかなーと思うので、修正する事は少ないだろうと考えており、何を修正すれば良いのか検討がついておりません。
def read(len, dest = '', ignore_eof = false) LOG "reading #{len} bytes..." read_bytes = 0 begin while read_bytes + @rbuf.size < len dest << (s = rbuf_consume(@rbuf.size)) read_bytes += s.size rbuf_fill end dest << (s = rbuf_consume(len - read_bytes)) # ここが106行目になります。 read_bytes += s.size rescue EOFError raise unless ignore_eof end LOG "read #{read_bytes} bytes" dest end
ここを確認するなどすればいいよ。などございますでしょうか?
※初心者なのでまずPOSTの方法があっているかどうかも怪しいのですが。。。
宜しくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。