Как реализовать куки в Ruby Net :: HTTP - PullRequest
6 голосов
/ 04 августа 2010

Это мой код.

Теперь мне нужно отправить куки на хост, но я не могу найти решение.


def get_network_file(url=nil)
  begin
    http = Net::HTTP.new( @service_server, 80 )
    resp, data = http.get( url, { "Accept-Language" => @locale } )
    if resp.code.to_i != 200
      RAILS_DEFAULT_LOGGER.error "*** return code != 200. code = #{resp.code}"
      return ""
    end
    rescue Exception => exc
      RAILS_DEFAULT_LOGGER.error "*** message --> #{exc.message}"
      return ""
    end
    return data
  end
end

Ответы [ 2 ]

5 голосов
/ 05 августа 2010

Вы передаете куки через тот же хеш, который отправляете заголовок «Accept-Language», что-то вроде:

resp, data = http.get( url, { 
     "Accept-Language" => @locale, 
     "Cookie" => "YOUR_COOKIE" 
} )

Вероятность того, что вам нужно будет сначала захватить куки.См. this для примеров обработки cookie.

2 голосов
/ 17 февраля 2012

Вам необходимо сначала получить файлы cookie с вашего сервера из полей заголовка ответа «set-cookie» ответа сервера.После того, как вы получили cookie-файлы, вы передаете их / их в заголовок «cookie» запроса вашего клиента.

Этот вопрос уже задается на Как реализовать поддержку cookie в ruby ​​net / http?

Принятый там ответ будет правильным, если только ваш сервер не вернет набор файлов cookie, и в этом случае вы можете захотеть посмотреть https://stackoverflow.com/a/9320190/1024480

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