Передать куки в Net :: HTTP.start - PullRequest
1 голос
/ 29 апреля 2011

У меня есть этот код прямо сейчас, чтобы выяснить путь перенаправления для URL.Проблема в том, что я не могу передать куки.

Кто-нибудь знает, как это сделать?

url = URI.parse("http://example.com") # Make sure you put the trailing slash on! 

found = false 
until found 
  host, port = url.host, url.port if url.host && url.port 
  req = Net::HTTP::Get.new(url.path)

  res = Net::HTTP.start(url.host, url.port) do |http| 
    http.request(req)
  end
  puts res.header['location']
  res.header['location'] ? url = URI.parse(res.header['location']) : 
found = true 
end

1 Ответ

4 голосов
/ 30 апреля 2011

Вот решение.

url = URI.parse("http://example.com")

found = false 
until found 
  host, port = url.host, url.port if url.host && url.port 
  req = Net::HTTP::Get.new(url.path, {
    "Cookie" => "sessid=123;"
  })

  res = Net::HTTP.start(url.host, url.port) do |http| 
    http.request(req)
  end
  puts res.header['location']
  res.header['location'] ? url = URI.parse(res.header['location']) : found = true 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...