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

发布于 2024-07-07 06:11:18 字数 41 浏览 9 评论 0原文

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

Is it possible to make a POST request from Ruby with open-uri?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苏佲洛 2024-07-14 06:11:18

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

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

Unfortunately open-uri only supports the GET verb.

You can either drop down a level and use net/http, or use rest-open-uri, which was designed to support POST and other verbs. You can do gem install rest-open-uri to install it.

谁许谁一生繁华 2024-07-14 06:11:18
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'
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

It worked for me :)

那伤。 2024-07-14 06:11:18

我还非常推荐 rest-client。 它是编写 API 客户端的良好基础。

I'd also really recommend rest-client. It's a great base for writing an API client.

明媚如初 2024-07-14 06:11:18

就这么简单:

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、

<强>奖励:发布/删除请求:

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

As simple as it gets:

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

I recommend using response.methods - Object.methods to see all the available methods, e.g. message, header,

Bonus: POST / DELETE requests:

puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文