سؤال

هل من الممكن تقديم طلب POST من روبي مع فتح-اوري؟

هل كانت مفيدة؟

المحلول

ومما يؤسف له open-uri يعتمد فقط على الفعل GET.

ويمكنك إما المنسدلة مستوى واستخدام net/http، أو استخدام rest-open-uri، الذي تم تصميمه لدعم POST والأفعال الأخرى. يمكنك القيام gem install rest-open-uri لتثبيته.

نصائح أخرى

require 'open-uri'
require 'net/http'
params = {'param1' => 'value1', 'param2' => 'value2'}
url = URI.parse('http://thewebsite.com/thepath')
resp, data = Net::HTTP.post_form(url, params)
puts resp.inspect
puts data.inspect

وعملت بالنسبة لي:)

ويهمني أيضا أن يوصي حقا بقية العميل . إنها قاعدة عظيمة لكتابة عميل API.

وكما بسيطة كما يحصل:

require 'open-uri'
require 'net/http'

response = Net::HTTP.post_form(URI.parse("https://httpbin.org/post"), { a: 1 })

puts response.code
puts response.message
puts response.body

وأوصي باستخدام response.methods - Object.methods لتشاهد كل الأساليب المتاحة، على سبيل المثال، message، header,

<القوي> مكافأة : في POST / حذف طلبات:

puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top