ruby open-uri

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