2013-06-18 14 views
15

Ho bisogno di inviare dati in JSON a un'altra app che gira sullo stesso computer.
mando richiesta in questo modo (rotaie 3.2.13)Invio di una richiesta di posta con rete/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 } 

ma ho Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"): Come posso risolvere questo problema?

Update 1
aggiornato il mio codice come @ Raja-d ha suggerito

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 

ma ho ancora ottengo l'errore Net::HTTPBadResponse (wrong status line: "-ERR unknown command 'POST'"):

+0

Si prega di guardare in questo http://taimoorchangaizpucitian.wordpress.com/2013/05/ 07/how-to-fix-nethttpbadresponse-wrong-status-line-in-ruby/ –

+0

Sei in grado di pubblicare su quell'URL usando curl o uno strumento esterno come PostMan in Chrome? – mcfinnigan

+0

Non ho provato quel postino. questa app non è sotto il mio controllo, – Elmor

risposta

37

Non so che cosa il vostro problema è, ma che dire qualcosa di simile questo

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

Grazie, ha risolto il problema con l'invio della richiesta! – Elmor

+0

perché non 'http.post (..' chiama direttamente? :) questo [metodo] (http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#method-i-post) –

+0

@ArupRakshit nessun motivo specifico. – oldergod