| Class | WWW::Mechanize::Chain::HeaderResolver |
| In: |
lib/www/mechanize/chain/header_resolver.rb
|
| Parent: | Object |
# File lib/www/mechanize/chain/header_resolver.rb, line 6
6: def initialize(keep_alive, keep_alive_time, cookie_jar, user_agent, headers)
7: @keep_alive = keep_alive
8: @keep_alive_time = keep_alive_time
9: @cookie_jar = cookie_jar
10: @user_agent = user_agent
11: @headers = headers
12: end
# File lib/www/mechanize/chain/header_resolver.rb, line 14
14: def handle(ctx, params)
15: uri = params[:uri]
16: referer = params[:referer]
17: request = params[:request]
18:
19: if @keep_alive
20: request['Connection'] = 'keep-alive'
21: request['Keep-Alive'] = @keep_alive_time.to_s
22: else
23: request['Connection'] = 'close'
24: end
25: request['Accept-Encoding'] = 'gzip,identity'
26: request['Accept-Language'] = 'en-us,en;q=0.5'
27: host = "#{uri.host}#{[80, 443].include?(uri.port.to_i) ? '' : ':' + uri.port.to_s}"
28: request['Host'] = host
29: request['Accept-Charset'] = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
30:
31: unless @cookie_jar.empty?(uri)
32: cookies = @cookie_jar.cookies(uri)
33: cookie = cookies.length > 0 ? cookies.join("; ") : nil
34: request.add_field('Cookie', cookie)
35: end
36:
37: # Add Referer header to request
38: if referer && referer.uri
39: request['Referer'] = referer.uri.to_s
40: end
41:
42: # Add User-Agent header to request
43: request['User-Agent'] = @user_agent if @user_agent
44:
45: @headers.each do |k,v|
46: request[k] = v
47: end if request
48: super
49: end