Как мне сделать POST-запрос с open-uri? - PullRequest
25 голосов
/ 28 октября 2008

Можно ли сделать POST-запрос от Ruby с open-uri?

Ответы [ 4 ]

31 голосов
/ 28 октября 2008

К сожалению, open-uri поддерживает только глагол GET.

Вы можете опустить уровень и использовать net/http, или использовать rest-open-uri, который был разработан для поддержки POST и других глаголов. Вы можете сделать gem install rest-open-uri, чтобы установить его.

12 голосов
/ 14 декабря 2011
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

у меня сработало :) 1002 *

10 голосов
/ 29 октября 2008

Я бы также порекомендовал rest-client . Это отличная база для написания API-клиента.

0 голосов
/ 27 апреля 2017

Как просто:

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
...