Soru Open-uri ile nasıl bir POST isteği yapabilirim?


Ruby'den open-uri ile bir POST isteği yapmak mümkün mü?


25
2017-10-28 08:58


Menşei




Cevaplar:


ne yazık ki open-uri sadece destekler GET fiil.

Bir seviyeye düşebilir ve kullanabilirsiniz net/http, veya kullan rest-open-uri, destekleyecek şekilde tasarlandı POST ve diğer fiiller. Yapabilirsin gem install rest-open-uri yüklemek için.


30
2017-10-28 09:24





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

Benim için çalıştı :)


12
2017-12-13 20:02



-1 Bu, bağlantıyı işlemek için OpenURI kullanmıyor, Net :: HTTP kullanıyor. Bu örnekte OpenURI sadece URI modülünü yüklemek için kullanılıyor. - the Tin Man
Ayrıca ilan ettin params sonra başvurulan query - KomodoDave
Kullanıp kullanmadığının önemi yok. open-uri bunu yapamazsa, bu cevap birçok kişiye yardımcı olacaktır. bu cevabı reddetmenin yolu yok - mask8


Ben de gerçekten tavsiye ederim dinlenme-istemci. Bir API istemcisi yazmak için harika bir temel.


10
2017-10-29 12:43



Bağlantı şu an: github.com/rest-client/rest-client - the Tin Man


Olabildiğince basit:

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

Kullanmanı öneririm response.methods - Object.methods mevcut tüm yöntemleri görmek için message, header,

Bonus: POST / DELETE istekleri:

puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body

1
2018-04-26 23:41