come usare il ricciolo su rubino su rotaie? Come questoCurl on Ruby on Rails
curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'
come usare il ricciolo su rubino su rotaie? Come questoCurl on Ruby on Rails
curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'
Solo nel caso non si sa, richiede 'net/http'
require 'net/http'
uri = URI.parse("http://example.org")
# Shortcut
#response = Net::HTTP.post_form(uri, {"user[name]" => "testusername", "user[email]" => "[email protected]"})
# Full control
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({"user[name]" => "testusername", "user[email]" => "[email protected]"})
response = http.request(request)
render :json => response.body
Spero che sarà aiuta gli altri .. :)
L'esempio più semplice di quello che si sta cercando di fare è di eseguire questo con apici inversi come questo
`curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'`
Tuttavia, questo restituisce una stringa, che si dovrà analizzare se volevo sapere qualcosa sulla risposta dal server.
A seconda della situazione, consigliamo di utilizzare Faraday. https://github.com/lostisland/faraday
Gli esempi sul sito sono semplici. Installare la gemma, lo richiedono, e fare qualcosa di simile:
conn = Faraday.new(:url => 'http://mydomain.com') do |faraday|
faraday.request :url_encoded # form-encode POST params
faraday.response :logger # log requests to STDOUT
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
end
conn.post '/file.json', { :params1 => {:name => 'name'}, :params2 => {:email => nil} }
Il corpo post verrà automaticamente essere trasformato in una stringa codificata forma di URL. Ma puoi anche inserire una stringa.
conn.post '/file.json', 'params1[name]=name¶ms2[email]'
Ecco un ricciolo di Ruby convertitore net/http: https://jhawthorn.github.io/curl-to-ruby/
ad esempio, un comando curl -v www.google.com
è equivalente in rubino a:
require 'net/http'
require 'uri'
uri = URI.parse("http://www.google.com")
response = Net::HTTP.get_response(uri)
# response.code
# response.body
hai un requirment speciale per usare cUrl, coz penso che potresti usare il metodo ruby HTTP post – sameera207
http://stackoverflow.com/questions/3810650/help-me-conversing-this-curl-to-a- post-metodo-in-rotaie –
controlla questo http://stackoverflow.com/questions/11269224/ruby-https-post-with-headers – sameera207