2013-01-15 3 views
5

ho intenzione di inviare una richiesta simile alla seguente:Recupero stringa di richiesta completo utilizzando Rubino ricciolo

c = Curl::Easy.http_post("https://example.com", json_string 
    ) do |curl| 
     curl.headers['Accept'] = 'application/json' 
     curl.headers['Content-Type'] = 'application/json' 
     curl.headers['Api-Version'] = '2.2' 
    end 

voglio registrare la richiesta http esatto che è stato fatto. C'è un modo per ottenere la richiesta effettiva (percorso di base, parametri di query, intestazioni e corpo)?

+0

Hai provato l'impostazione 'curl.verbose = true' all'interno del vostro blocco? – onions

risposta

1

Il on_debug handler mi ha aiutato prima. Nel tuo esempio si potrebbe provare:

curl.on_debug do |type, data| 
    puts type, data 
end 
0

È possibile raggiungere la soluzione in maniera differenti:

All'interno del vostro blocco che si può mettere:

curl.verbose = true # that prints a detailed output of the connection 

o all'esterno del blocco:

c.url # return the url with queries 
c.total_time # retrieve the total time for the prev transfer (name resolving, TCP,...) 
c.header_str # return the response header 
c.headers # return your call header 
c.body_str # return the body of the response 

Ricordarsi di chiamare c.perform (se non ancora eseguito) prima di chiamare questi metodi.

Molti di più opzione può essere trovato qui: http://curb.rubyforge.org/classes/Curl/Easy.html#M000001