12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/www/mechanize/chain/response_header_handler.rb', line 12
def handle(ctx, params)
response = params[:response]
uri = params[:uri]
page = params[:page]
cache_obj = (@connection_cache["#{uri.host}:#{uri.port}"] ||= {
:connection => nil,
:keep_alive_options => {},
})
if keep_alive_info = response['keep-alive']
keep_alive_info.split(/,\s*/).each do |option|
k, v = option.split(/=/)
cache_obj[:keep_alive_options] ||= {}
cache_obj[:keep_alive_options][k.intern] = v
end
end
if page.is_a?(Page) && page.body =~ /Set-Cookie/n
page.search('//meta[@http-equiv="Set-Cookie"]').each do |meta|
Cookie::parse(uri, meta['content']) { |c|
Mechanize.log.debug("saved cookie: #{c}") if Mechanize.log
@cookie_jar.add(uri, c)
}
end
end
(response.get_fields('Set-Cookie')||[]).each do |cookie|
Cookie::parse(uri, cookie) { |c|
Mechanize.log.debug("saved cookie: #{c}") if Mechanize.log
@cookie_jar.add(uri, c)
}
end
super
end
|