Ruby 如何使用开放uri发出POST请求?

Ruby 如何使用开放uri发出POST请求?,ruby,open-uri,Ruby,Open Uri,是否可以使用openuri从Ruby发出POST请求?不幸的是openuri只支持GET动词 您可以下拉一个级别并使用net/http,也可以使用rest-open-uri,该uri旨在支持POST和其他动词。您可以执行gem安装rest-openuri来安装它。我也非常推荐。这是编写API客户机的良好基础 require 'open-uri' require 'net/http' params = {'param1' => 'value1', 'param2' => 'value2

是否可以使用openuri从Ruby发出POST请求?

不幸的是
openuri
只支持
GET
动词

您可以下拉一个级别并使用
net/http
,也可以使用
rest-open-uri
,该uri旨在支持
POST
和其他动词。您可以执行
gem安装rest-openuri
来安装它。

我也非常推荐。这是编写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
它对我起了作用:)

就这么简单:

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

奖金:发布/删除请求:

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

-1这不是使用OpenURI来处理连接,而是使用Net::HTTP。在本例中,OpenURI仅用于加载URI模块。此外,您还声明了
params
,然后引用了
query
,无论其使用与否。如果OpenURI不能做到这一点,这个答案将帮助很多人。没有办法否决这个答案访问上面发布的主要网站有点困惑-这是一个我必须自己编译并包含的宝石吗?