2013-04-04 11 views
9

रेल पर रूबी पर कर्ल का उपयोग कैसे करें? जैसा यह एकरेल पर रूबी पर कर्ल

curl -d 'params1[name]=name&params2[email]' 'http://mydomain.com/file.json' 
+0

क्या आपके पास सीयूआरएल का उपयोग करने के लिए एक विशेष आवश्यकता है, मुझे लगता है कि आप रूबी HTTP पोस्ट विधि – sameera207

+0

http://stackoverflow.com/questions/3810650/help-me-converting-this-curl-to-a- पोस्ट-विधि-इन-रेल –

+1

यह जांचें http://stackoverflow.com/questions/11269224/ruby-https-post-with-headers – sameera207

उत्तर

22

बस मामले में आप नहीं जानते कि ऐसा करना आवश्यक 'शुद्ध/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 

आशा है कि यह दूसरों को मदद मिलती हूँ .. :)

0

तुम क्या करने कोशिश कर रहे हैं का सबसे बुनियादी उदाहरण इस

`curl -d 'params1[name]=name&params2[email]' 'http://mydomain.com/file.json'` 

तरह बैकटिक के साथ इस पर अमल करने के लिए है लेकिन इस एक स्ट्रिंग है, जो आप अगर आप को पार्स करने के लिए होगा रिटर्न सर्वर से जवाब के बारे में कुछ भी जानना चाहता था।

आपकी स्थिति के आधार पर मैं फैराडे का उपयोग करने की सलाह दूंगा। https://github.com/lostisland/faraday

साइट पर उदाहरण सीधे आगे हैं। मणि स्थापित करें, यह आवश्यकता होती है, और कुछ इस तरह करते हैं:

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} } 

पोस्ट शरीर स्वचालित रूप से एक यूआरएल इनकोडिंग प्रपत्र स्ट्रिंग में बदल दिया जाएगा। लेकिन आप बस एक स्ट्रिंग भी पोस्ट कर सकते हैं।

conn.post '/file.json', 'params1[name]=name&params2[email]' 
+0

अनियमित स्थिर टेस्ट कंट्रोलर :: फैराडे मैंने सफलतापूर्वक मणि इंस्टॉल किया है .. समस्या क्या है? – Lian

+0

क्या आपने जेमफाइल को जेम जोड़ा था? और उसके बाद 'बंडल इंस्टॉल' चलाएं, आमतौर पर निरंतर त्रुटियों के उन बच्चों का मतलब है कि इसे लोड नहीं किया गया है। – stuartc

+0

हां मैं इसके साथ हूं। – Lian

0

यहाँ रूबी के लिए एक कर्ल है शुद्ध/http कनवर्टर:

01: https://jhawthorn.github.io/curl-to-ruby/

उदाहरण के लिए, एक curl -v www.google.com आदेश बराबर रूबी में करने के लिए है

संबंधित मुद्दे