¿Cómo hago una solicitud POST con open-uri?
Pregunta
¿Es posible realizar una solicitud POST de Ruby con open-uri?
Solución
Lamentablemente, open-uri
solo admite el verbo GET
.
Puede desplegar un nivel y usar net / http
, o usar rest-open-uri
, que fue diseñado para admitir POST
y otros verbos. Puedes hacer gem install rest-open-uri
para instalarlo.
Otros consejos
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í :)
También recomiendo realmente rest-client . Es una base excelente para escribir un cliente de API.
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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow