jak używać zwijania na rubinach na szynach? Jak tenZwijanie na Ruby on Rails
curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'
jak używać zwijania na rubinach na szynach? Jak tenZwijanie na Ruby on Rails
curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'
tylko w przypadku kiedy nie wiem, to wymaga 'netto/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
nadzieję, że to pomaga innym .. :)
Najprostszym przykładem tego, co próbujesz zrobić, to wykonać to z backticks jak ten
`curl -d 'params1[name]=name¶ms2[email]' 'http://mydomain.com/file.json'`
Jednak ta zwraca ciąg znaków, które trzeba przeanalizować, czy ciebie chciał wiedzieć cokolwiek na temat odpowiedzi z serwera.
W zależności od sytuacji polecam używanie Faradaya. https://github.com/lostisland/faraday
Przykłady na stronie są proste. Zainstalować gem, wymagają, i zrobić coś takiego:
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} }
Ciało poczta zostanie automatycznie przekształcony w postać url zakodowany ciąg. Ale możesz również napisać ciąg znaków.
conn.post '/file.json', 'params1[name]=name¶ms2[email]'
niezainicjowana stała TestController :: Faraday Z powodzeniem instaluję klejnot .. na czym polega problem? – Lian
Czy dodałeś Klejnot do Gemfile? a następnie uruchom 'bundle install', zwykle te kidns ciągłych błędów oznaczają, że nie zostały załadowane. – stuartc
Tak, skończyłem z tym. – Lian
Oto curl do Ruby konwerter netto/http: https://jhawthorn.github.io/curl-to-ruby/
na przykład komenda curl -v www.google.com
jest równoważne w Ruby do:
require 'net/http'
require 'uri'
uri = URI.parse("http://www.google.com")
response = Net::HTTP.get_response(uri)
# response.code
# response.body
masz specjalne wymagania do korzystania z cUrl, coz Myślę, że możesz użyć metody posta HTTP ruby – sameera207
http://stackoverflow.com/questions/3810650/help-me-converting-this-curl-toa-a- post-method-in-rails –
sprawdź ten http://stackoverflow.com/questions/11269224/ruby-https-post-with-headers – sameera207