Как делают меня x число только для чтения байтов тела с помощью Сети:: HTTP?

Они не связаны между собой.

_ в js обычно ссылается на библиотеку http://underscorejs.org/.

_ в вашем шаблоне html скорее ссылается на помощника, установленного в https://github.com/TAPevents/tap-i18n пакет / библиотека для интернационализации.

12
задан the Tin Man 22 December 2011 в 00:10
поделиться

5 ответов

Не были должны Вы просто использовать HTTP HEAD запрос (Ruby Net::HTTP::Head метод), чтобы видеть, там ли ресурс и только продолжается, если Вы добираетесь 2xx или 3xx ответ? Это предполагает, что Ваш сервер настроен для возврата 4xx код ошибки, если документ не доступен. Я утверждал бы, что это было правильным решением.

Альтернатива должна запросить голову HTTP и посмотреть на content-length значение заголовка в результате: если Ваш сервер правильно настроен, необходимо легко смочь сказать различие в длине между коротким сообщением и длинным документом. Другая альтернатива: установите content-range поле заголовка в запросе (который снова предполагает, что сервер ведет себя правильно WRT спецификация HTTP).

Я не думаю, что решение проблемы в клиенте после отправки ПОЛУЧИТЬ запроса, является способом пойти: к тому времени сеть сделала тяжелый подъем, и Вы действительно не сохраните потраченных впустую ресурсов.

Ссылка: определения заголовка http

12
ответ дан 2 December 2019 в 05:16
поделиться

Я хотел сделать это однажды, и единственной вещью, о которой я мог думать, является обезьяна, исправляющая Net::HTTP#read_body и Net::HTTP#read_body_0 методы для принятия параметра длины, и затем в первом просто передают параметр длины read_body_0 метод, где Вы можете только для чтения так же как байты длины.

3
ответ дан 2 December 2019 в 05:16
поделиться

Вы уверены, что сервер содержания только возвращает короткую ошибочную страницу?

Не делает это также установило HTTPResponse к чему-то соответствующему как 404. В этом случае можно захватить HTTPClientError полученное исключение (скорее всего, HTTPNotFound) который повышен при доступе Net::HTTP.value().

Если Вы получаете ошибку затем, Ваш файл не был там, если Вы добираетесь 200, файл начинает загружать, и можно закрыть соединение.

2
ответ дан 2 December 2019 в 05:16
поделиться

Для чтения тела Запроса HTTP в блоках необходимо будет использовать Net::HTTPResponse#read_body как это:

http.request_get('/large_resource') do |response|
  response.read_body do |segment|
    print segment
  end
end
2
ответ дан 2 December 2019 в 05:16
поделиться

Вы не можете. Но почему Вы должны? Конечно, если страница просто скажет, что файл не доступен затем, то это не будет огромная страница (т.е. по определению, файл не будет там)?

-3
ответ дан 2 December 2019 в 05:16
поделиться
Другие вопросы по тегам:

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