Как я получаю содержание запроса HTTP в Ruby?

Я думаю, что это - превосходный вопрос и нисколько не спорный. Я думаю, что сторонние библиотеки должны (в целом) бросить , снял флажок исключения. Это означает, что можно изолировать зависимости от библиотеки (т.е. Вы не должны или повторно бросать их исключения или бросок Exception - обычно плохая практика). Spring уровень DAO является превосходным примером этого.

, С другой стороны, исключения из базового API Java должны в целом быть проверены, если они могли когда-нибудь быть обработанными. Возьмите FileNotFoundException или (мой фаворит) InterruptedException. Эти условия должны почти всегда быть обработанными конкретно (т.е. Ваша реакция на InterruptedException не является тем же как Вашей реакцией на IllegalArgumentException). То, что Ваши исключения проверяются разработчики сил для размышления о том, управляемо ли условие или нет. (Тем не менее я редко видел InterruptedException обработанный правильно!)

Еще одна вещь - RuntimeException не всегда, "где разработчик получил что-то не так". Недопустимое исключение аргумента выдается, когда Вы пытаетесь создать enum использование valueOf и нет никакого enum из того имени. Это - не обязательно ошибка разработчиком!

13
задан Ryan Florence 27 August 2009 в 17:37
поделиться

3 ответа

Стандартный пакет библиотеки open-uri - это то, что вам нужно:

require 'open-uri'
contents = open('http://www.example.com') {|io| io.read}
# or
contents = URI.parse('http://www.example.com').read
20
ответ дан 1 December 2019 в 20:00
поделиться

На ваш взгляд, попробуйте

<%= request.inspect %>
0
ответ дан 1 December 2019 в 20:00
поделиться
require 'net/http'
Net::HTTP.get(URI.parse('http://www.example.com/index.html'))

Не знаю, почему я не нашел этого раньше. Если нет лучшего способа, я пойду этим!

11
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: