如何使用open-uri发出POST请求?

时间:2008-10-28 08:58:49

标签: ruby open-uri

是否可以使用open-uri从Ruby发出POST请求?

4 个答案:

答案 0 :(得分:31)

不幸的是open-uri仅支持GET动词。

您可以下拉某个级别并使用net/http,也可以使用旨在支持rest-open-uri和其他动词的POST。您可以gem install rest-open-uri进行安装。

答案 1 :(得分:11)

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

它对我有用:)

答案 2 :(得分:10)

我也非常推荐rest-client。它是编写API客户端的理想基础。

答案 3 :(得分:0)

尽可能简单:

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查看所有可用的方法,例如messageheader,

奖金:POST / DELETE请求:

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