2013-06-18 27 views
15

Potrzebuję wysłać dane w JSON do innej aplikacji działającej na tym samym komputerze.
wyślę prośbę (podobnie jak szyny 3.2.13)Wysyłanie żądania pocztowego za pomocą sieci/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 } 

ale pojawia Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"): Jak mogę rozwiązać ten problem?

Update 1
Updated mój kod jako @ Raja-d zasugerował

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 

ale nadal dostać błąd Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"):

+0

Proszę zajrzeć do tego http://taimoorchangaizpucitian.wordpress.com/2013/05/ 07/how-to-fix-nethttpbadresponse-wrong-status-line-in-ruby/ –

+0

Czy możesz publikować w tym adresie URL za pomocą curl lub zewnętrznego narzędzia, takiego jak PostMan w przeglądarce Chrome? – mcfinnigan

+0

Nie próbowałem tego listonosza. ta aplikacja nie jest pod moją kontrolą, – Elmor

Odpowiedz

37

nie wiem jaki jest twój problem, ale co o czymś takim ten

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

Dzięki, rozwiązał problem z wysłaniem zapytania! – Elmor

+0

dlaczego nie 'http.post (..? Zadzwonić bezpośrednio? :) to [metoda] (http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#method-i-post) –

+0

@ArupRakshit bez konkretnego powodu. – oldergod