كيف أقوم بإجراء طلب POST مع فتح-اوري؟
سؤال
هل من الممكن تقديم طلب 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
لا تنتمي إلى StackOverflow