使用net/http发送Post请求

Elm*_*mor 19 ruby post json ruby-on-rails net-http

我需要将JSON中的数据发送到在同一台计算机上运行的另一个应用程序.
我这样发送请求(rails 3.2.13)

 data = { //some data hash }
 url = URI.parse('http://localhost:6379/api/plans')
  resp, data = Net::HTTP.post_form(url, data.to_JSON )
  p resp
  p data
  { resp: resp, data: data.to_JSON }
Run Code Online (Sandbox Code Playgroud)

但是我得到了Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"): 如何解决这个问题?

更新1将
我的代码更新为@ Raja-d建议

  url = URI.parse('http://localhost:6379/v1/sessions')
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  resp, data = Net::HTTP.post_form(url, data)
  p resp
  p data
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误 Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"):

old*_*god 41

我不知道你的问题是什么,但是这样的事情呢

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json'})
request.body = data.to_json

response = http.request(request)
Run Code Online (Sandbox Code Playgroud)

  • 为什么不直接通过http.post(..)调用?:)此[方法](http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#method-i-post) (2认同)