ruby - ¿Cómo realizo una solicitud POST con open-uri?
(4)
Lamentablemente, open-uri
solo es compatible con el verbo GET
.
Puede desplegar un nivel y usar net/http
, o usar rest-open-uri
, que fue diseñado para soportar POST
y otros verbos. Puedes hacer gem install rest-open-uri
para instalarlo.
¿Es posible hacer una solicitud POST de Ruby con open-uri?
También recomendaría rest-client . Es una excelente base para escribir un cliente API.
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
Funcionó para mí :)
Tan simple como se pone:
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
Recomiendo usar response.methods - Object.methods
para ver todos los métodos disponibles, por ejemplo, message
, header,
Bonificación : solicitudes POST / DELETE:
puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body