2013-06-18 60 views
15

JSONでデータを同じコンピュータで実行される別のアプリに送信する必要があります。
私は私がこの問題を解決するにはどうすればよいので、(レール3.2.13)投稿リクエストをnet/httpで送信する

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 } 

しかし、私はNet::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"): を得るように要求を送信しますか?

アップデート1
更新@ラジャ-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 

しかし、私はまだのようなものについて、私はあなたの問題が何であるかを知らないNet::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"):

+0

http://taimoorchangaizpucitian.wordpress.com/2013/05/ 07/how-to-fix-nethttpbadresponse-wrong-status-in-ruby/ –

+0

このURLにカールやChromeのPostManのような外部ツールを使用して投稿できますか? – mcfinnigan

+0

私はその郵便配達員を試しませんでした。このアプリは私のコントロールの下にありません – Elmor

答えて

37

エラーが、何を取得この

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) 
+0

ありがとう、それはリクエストを送信すると問題を解決! – Elmor

+0

なぜ 'http.post(..'を直接呼びますか?:) this [method](http://docs.ruby-lang.org/ja/2.0.0/Net/HTTP.html#method-i-post ) –

+0

@ArupRakshit特別な理由はありません。 – oldergod

関連する問題