Я использую net/http
в Ruby для отправки GET
запроса в веб-сервис.Важный бит кода следующий:
Net::HTTP.start("www.thehost.com") do |http|
req = Net::HTTP::Get.new("/api" + ROUTES[sym] + "?" + params)
resp = http.request req
end
params
- строка, содержащая пары ключ-значение в форме key=val&blag=blorg
.Когда приходит ответ, это страница сервера с ошибкой, которая цитирует URI запроса;вместо key=val&blag=blorg
он имеет key=val&blag=blorg
.Поскольку, когда я ввожу тот же адрес в веб-браузер с &
вместо &
, я получаю ожидаемый ответ, я подозреваю, что экранирование &
является причиной проблемы.Однако, если кто-то с большим опытом не согласен с этим, переименуйте мой вопрос!
Я должен отметить, что когда я использую http://www.thehost.com/api#{ROUTES[sym]}?#{params}
с Net::HTTP.get_response
, я получаю ожидаемый ответ.Что я могу сделать, чтобы это исправить?