2016-05-27 2 views
0

Я пытаюсь сделать запрос HTTP Head с использованием Net :: HTTP.Net :: Ошибка HTTP при запросе на головку

require 'net/http' 

uri = URI("https://github.com/rails/rails") 
http = Net::HTTP.new(uri.host, uri.port) 
request = http.head(uri) 

puts request 

не работает.

AFAICT, это связано с тем, что Net :: HTTP ожидает ответного тела, которое никогда не появится. Как я могу попросить Net :: HTTP сделать запрос и не дождаться тела ответа?

+1

Правильный способ выполнения запроса HEAD с завиванием - это опция '--head'. С '-X HEAD', curl отправляет HEAD-метод, но все еще ждет тело ответа - следовательно, задержки. –

+0

@ Василий - Ах, это имеет смысл. Таким образом, проблема, вероятно, в том, что внутренне Net :: HTTP ждет тело ответа и не получает его, верно? –

ответ

1

Если вы следуете за documentation должным образом, это сработает отлично. Возможно, реализация библиотеки имеет некоторые предположения об использовании, когда она определяет, следует ли читать полезную нагрузку.

response = nil 
Net::HTTP.start('github.com', :use_ssl => true) do |http| 
    response = http.head('/rails/rails') 
end 

response.each { |k, v| [k, v] } 
Смежные вопросы