2013-06-18 125 views
15

我需要發送JSON數據到另一個應用程序運行在同一臺計算機上。
我送像這樣(軌道3.2.13)發送郵件請求淨/ 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-line-in-ruby/ –

+0

你是否可以在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(..'直接調用?:)這個[方法](http://docs.ruby-lang.org/zh/2.0.0/Net/HTTP.html#method-i-post ) –

+0

@ArupRakshit沒有具體原因。 – oldergod