Class: Appium::Core::Base::Http::Default
- Inherits:
-
Selenium::WebDriver::Remote::Http::Default
- Object
- Selenium::WebDriver::Remote::Http::Default
- Appium::Core::Base::Http::Default
- Defined in:
- lib/appium_lib_core/common/base/http_default.rb
Constant Summary collapse
- DEFAULT_HEADERS =
{ 'Accept' => CONTENT_TYPE, 'Content-Type' => "#{CONTENT_TYPE}; charset=UTF-8", 'User-Agent' => "appium/ruby_lib_core/#{VERSION} (#{::Selenium::WebDriver::Remote::Http::Common::DEFAULT_HEADERS['User-Agent']})" }.freeze
Instance Attribute Summary collapse
-
#additional_headers ⇒ Object
readonly
Returns the value of attribute additional_headers.
Instance Method Summary collapse
-
#call(verb, url, command_hash) ⇒ Object
override to use default header github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/http/common.rb#L46.
-
#initialize(open_timeout: nil, read_timeout: nil) ⇒ Default
constructor
override.
-
#update_sending_request_to(scheme:, host:, port:, path:) ⇒ URI
Update
server_url
provided when ruby_lib _core created a default http client.
Constructor Details
#initialize(open_timeout: nil, read_timeout: nil) ⇒ Default
override
40 41 42 43 44 |
# File 'lib/appium_lib_core/common/base/http_default.rb', line 40 def initialize(open_timeout: nil, read_timeout: nil) # rubocop:disable Lint/MissingSuper @open_timeout = open_timeout @read_timeout = read_timeout @additional_headers = {} end |
Instance Attribute Details
#additional_headers ⇒ Object (readonly)
Returns the value of attribute additional_headers.
37 38 39 |
# File 'lib/appium_lib_core/common/base/http_default.rb', line 37 def additional_headers @additional_headers end |
Instance Method Details
#call(verb, url, command_hash) ⇒ Object
override to use default header github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/http/common.rb#L46
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/appium_lib_core/common/base/http_default.rb', line 80 def call(verb, url, command_hash) url = server_url.merge(url) unless url.is_a?(URI) headers = DEFAULT_HEADERS.dup headers = headers.merge @additional_headers unless @additional_headers.empty? headers['Cache-Control'] = 'no-cache' if verb == :get if command_hash payload = JSON.generate(command_hash) headers['Content-Length'] = payload.bytesize.to_s if [:post, :put].include?(verb) elsif verb == :post payload = '{}' headers['Content-Length'] = '2' end ::Appium::Logger.info(" >>> #{url} | #{payload}") ::Appium::Logger.info(" > #{headers.inspect}") request verb, url, headers, payload end |
#update_sending_request_to(scheme:, host:, port:, path:) ⇒ URI
Update server_url
provided when ruby_lib _core created a default http client. Set @http
as nil to re-create http client for the server_url
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/appium_lib_core/common/base/http_default.rb', line 55 def update_sending_request_to(scheme:, host:, port:, path:) return @server_url unless validate_url_param(scheme, host, port, path) # Add / if 'path' does not have it path = path.start_with?('/') ? path : "/#{path}" path = path.end_with?('/') ? path : "#{path}/" @http = nil @server_url = URI.parse "#{scheme}://#{host}:#{port}#{path}" end |