Class: Selenium::WebDriver::Remote::Http::Curb
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Common
|
|
Instance Chain:
self,
Common
|
|
Inherits: |
Selenium::WebDriver::Remote::Http::Common
|
Defined in: | rb/lib/selenium/webdriver/remote/http/curb.rb |
Overview
An alternative to the default Net::HTTP
client.
This can be used for the ::Selenium::WebDriver::Firefox
and ::Selenium::WebDriver::Remote
drivers if you have Curb
installed.
Constant Summary
Common
- Inherited
Instance Attribute Summary
Common
- Inherited
Instance Method Summary
- #quit_errors
- #client private
- #request(verb, url, headers, payload) private
Common
- Inherited
Instance Method Details
#client (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/http/curb.rb', line 79
def client @client ||= begin c = Curl::Easy.new c.max_redirects = MAX_REDIRECTS c.follow_location = true c.timeout = @timeout if @timeout c.verbose = WebDriver.logger.debug? c end end
#quit_errors
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/http/curb.rb', line 40
def quit_errors [Curl::Err::RecvError] + super end
#request(verb, url, headers, payload) (private)
[ GitHub ]# File 'rb/lib/selenium/webdriver/remote/http/curb.rb', line 46
def request(verb, url, headers, payload) client.url = url.to_s # workaround for http://github.com/taf2/curb/issues/issue/40 # curb will handle this for us anyway headers.delete 'Content-Length' client.headers = headers # http://github.com/taf2/curb/issues/issue/33 client.head = false client.delete = false case verb when :get client.http_get when :post client.post_body = payload || '' client.http_post when :put client.put_data = payload || '' client.http_put when :delete client.http_delete when :head client.http_head else raise Error::WebDriverError, "unknown HTTP verb: #{verb.inspect}" end create_response client.response_code, client.body_str, client.content_type end