Class: WT::WebSession
- Inherits:
-
Object
- Object
- WT::WebSession
- Defined in:
- lib/web_session.rb
Instance Attribute Summary collapse
-
#cookies ⇒ Object
Returns the value of attribute cookies.
-
#form_fields ⇒ Object
Returns the value of attribute form_fields.
-
#proxy_host ⇒ Object
Returns the value of attribute proxy_host.
-
#proxy_port ⇒ Object
Returns the value of attribute proxy_port.
Instance Method Summary collapse
-
#initialize(&block) ⇒ WebSession
constructor
A new instance of WebSession.
- #request(req, follow_redirect = false, &block) ⇒ Object
Constructor Details
#initialize(&block) ⇒ WebSession
Returns a new instance of WebSession.
13 14 15 16 17 18 19 20 |
# File 'lib/web_session.rb', line 13 def initialize(&block) @cookies = [] @form_fields = {} @proxy_host = nil @proxy_port = 0 block.call(self) if block end |
Instance Attribute Details
#cookies ⇒ Object
Returns the value of attribute cookies.
8 9 10 |
# File 'lib/web_session.rb', line 8 def @cookies end |
#form_fields ⇒ Object
Returns the value of attribute form_fields.
9 10 11 |
# File 'lib/web_session.rb', line 9 def form_fields @form_fields end |
#proxy_host ⇒ Object
Returns the value of attribute proxy_host.
10 11 12 |
# File 'lib/web_session.rb', line 10 def proxy_host @proxy_host end |
#proxy_port ⇒ Object
Returns the value of attribute proxy_port.
11 12 13 |
# File 'lib/web_session.rb', line 11 def proxy_port @proxy_port end |
Instance Method Details
#request(req, follow_redirect = false, &block) ⇒ Object
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/web_session.rb', line 22 def request(req, follow_redirect = false, &block) WT::Log.debug(">> WT::WebSession::request()") req.headers['Cookie'] = WT::Cookie.explode(@cookies) if @cookies.length > 0 @form_fields.each do |name, value| req.request_data[name].gsub! "$?", "#{value}" if req.request_data and req.request_data[name] end # set proxy if exists req.proxy_host = @proxy_host if @proxy_host req.proxy_port = @proxy_port if @proxy_port > 0 result = req.exec if result.response != nil = result.response['Set-Cookie'] if @cookies = []; .split(',').each do || @cookies << WT::Cookie.parse(.strip) end end if follow_redirect && ['301', '302'].include?(result.response.code) req.request_type = "GET" req.request_url = result.response['Location'] req.request_data = {} result = self.request(req, follow_redirect, &block) else @form_fields = find_form_fields(result.response.body) end end WT::Log.debug("<< WT::WebSession::request()") block.call(result) if block return result end |