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

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

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

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

 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 

它对我有用:)

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

它很简单:

 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