Как я могу отправить запрос HTTP PUT в Ruby?

Я пытаюсь отправить запрос PUT на определенный URL-адрес, и до сих пор безуспешно.

Если бы я делал это через графический интерфейс HTTP запрашивающего, например,этот Во-первых, это будет так же просто, как сделать PUT для следующего URL:

http://www.mywebsite.com:port/Application?key=apikey&id=id&option=enable|disable

Обратите внимание, что номер порта указан в приведенном выше запросе. Я также должен сделать это при отправке запроса через код рубина.

Как я могу повторить такой запрос в Ruby?

 finiteloop09 июл. 2012 г., 23:58
Я пробовал restclient, а также net / http, и мне не удалось использовать оба. Я уверен, что это из-за некоторой ошибки / недостатка знаний с моей стороны. Дальнейшее объяснение использования любого из них будет с благодарностью. Я бы предпочел net / http по сравнению с restclient.
 Dave Newton09 июл. 2012 г., 23:52
Используйте драгоценный камень restclient; есть способ PUT. Без каких-либо подробностей относительно проблем, о которых вы говорите, вы не знаете, что еще сказать.
 jtesch09 июл. 2012 г., 23:54
restclient превосходен, если вы не хотите больше зависимостей, вы можете использовать net / http, который является частью стандартной библиотеки:rubyinside.com/nethttp-cheat-sheet-2940.html
 peterept10 июл. 2012 г., 00:33
Было бы понятнее, если бы вы могли показать нам именно ту услугу, к которой вы пытаетесь получить доступ. Вы уверены, что имеете в виду запрос PUT? Похоже, вы хотите, чтобы запрос GET получил некоторые данные?
 finiteloop11 июл. 2012 г., 06:46
Привет peterept, к сожалению, это для работы, и я не могу действительно раскрыть больше, чем это. Тем не менее, это был положенный запрос, а не получить. Я уже получил запросы реализованы хаха

Ответы на вопрос(1)

Решение Вопроса
require 'net/http'

port = 8080
host = "127.0.0.1"
path = "/Application?key=apikey&id=id&option=enable"

req = Net::HTTP::Put.new(path, initheader = { 'Content-Type' => 'text/plain'})
req.body = "whatever"
response = Net::HTTP.new(host, port).start {|http| http.request(req) }
puts response.code

ьше копания помогло мне найти более элегантное решение, руководствуясь этим ответом.

http = Net::HTTP.new('www.mywebsite.com', port)
response = http.send_request('PUT', '/path/from/host?id=id&option=enable|disable')
 10 июл. 2012 г., 00:39
Это помогает?
 finiteloop09 июл. 2012 г., 23:59
Где это я бы включил аргументы для моего запроса?
 22 мая 2018 г., 21:46
send_request также принимает необязательный четвертый параметр для пользовательских заголовков.
 29 апр. 2013 г., 15:46
@finiteloop:send_request принимает третий параметр для данных, которые вы 'PUT'
 finiteloop10 июл. 2012 г., 00:46
Ларри, это очень полезно. Спасибо, что нашли время, чтобы сделать это.

Ваш ответ на вопрос