是否可以使用 open-uri 从 Ruby 发出 POST 请求?
Alisey
问问题
21400 次
4 回答
34
不幸open-uri
的是只支持GET
动词。
您可以下拉一个级别并使用net/http
,或使用rest-open-uri
,它旨在支持POST
和其他动词。你可以gem install rest-open-uri
安装它。
于 2008-10-28T09:24:34.133 回答
15
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
它对我有用:)
于 2011-12-13T20:02:31.803 回答
10
我也真的推荐rest-client。它是编写 API 客户端的绝佳基础。
于 2008-10-29T12:43:17.833 回答
1
就这么简单:
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
来查看所有可用的方法,例如message
,header,
奖励:POST / DELETE 请求:
puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body
于 2017-04-26T23:41:52.553 回答