15: def handle(ctx, params)
16: uri = params[:uri]
17: referer = params[:referer]
18: request = params[:request]
19:
20: if @keep_alive
21: request['Connection'] = 'keep-alive'
22: request['Keep-Alive'] = @keep_alive_time.to_s
23: else
24: request['Connection'] = 'close'
25: end
26: if @gzip_enabled
27: request['Accept-Encoding'] = 'gzip,identity'
28: else
29: request['Accept-Encoding'] = 'identity'
30: end
31: request['Accept-Language'] = 'en-us,en;q=0.5'
32: host = "#{uri.host}#{[80, 443].include?(uri.port.to_i) ? '' : ':' + uri.port.to_s}"
33: request['Host'] = host
34: request['Accept-Charset'] = 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
35:
36: unless @cookie_jar.empty?(uri)
37: cookies = @cookie_jar.cookies(uri)
38: cookie = cookies.length > 0 ? cookies.join("; ") : nil
39: request.add_field('Cookie', cookie)
40: end
41:
42:
43: if referer && referer.uri
44: request['Referer'] = referer.uri.to_s
45: end
46:
47:
48: request['User-Agent'] = @user_agent if @user_agent
49:
50: @headers.each do |k,v|
51: request[k] = v
52: end if request
53: super
54: end