Оптимизированный способ получения размера ответа в Ruby? - PullRequest
1 голос
/ 11 апреля 2010

Я могу сделать File.size(path), чтобы получить размер файла в байтах. Как получить размер ответа HTTP, не записывая его в временный файл?

1 Ответ

9 голосов
/ 11 апреля 2010

Позвоните .size на то, что вы напишите в временный файл?

Или, если это через HTTP, вы можете получить длину содержимого только из заголовков. Пример:

require 'net/http'

response = nil

# Just get headers
Net::HTTP.start('stackoverflow.com', 80) do |http|
  response = http.head('/')
end
puts response.content_length

# Get the entire response
Net::HTTP.start('stackoverflow.com', 80) do |http|
  response = http.get('/')
end
puts response.body.size

Обратите внимание, что если сервер не предоставляет длину контента (часто в случае динамического контента), то response.content_length будет nil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...