Skip to content
Kward Search API index

Class: Kward::WebSearch::NetHttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/kward/tools/search/web.rb

Overview

HTTP adapter used by web-search providers and fallbacks.

Defined Under Namespace

Classes: Response

Instance Method Summary collapse

Constructor Details

#initialize(user_agent: Http.user_agent) ⇒ NetHttpClient

Returns a new instance of NetHttpClient.



755
756
757
# File 'lib/kward/tools/search/web.rb', line 755

def initialize(user_agent: Http.user_agent)
  @user_agent = user_agent
end

Instance Method Details

#get(url, headers: {}, max_bytes: nil) ⇒ Object



759
760
761
# File 'lib/kward/tools/search/web.rb', line 759

def get(url, headers: {}, max_bytes: nil)
  request(url, Net::HTTP::Get, headers: headers, max_bytes: max_bytes)
end

#get_json(url, headers: {}) ⇒ Object



763
764
765
# File 'lib/kward/tools/search/web.rb', line 763

def get_json(url, headers: {})
  JSON.parse(get_text(url, headers: headers.merge("Accept" => "application/json")))
end

#get_text(url, headers: {}) ⇒ Object



767
768
769
770
771
772
773
# File 'lib/kward/tools/search/web.rb', line 767

def get_text(url, headers: {})
  uri = URI.parse(url)
  response = get(uri.to_s, headers: headers)
  raise "HTTP #{response.code} from #{uri.host}" unless success?(response.code)

  response.body
end

#post(url, form:, headers: {}) ⇒ Object



775
776
777
778
779
# File 'lib/kward/tools/search/web.rb', line 775

def post(url, form:, headers: {})
  request(url, Net::HTTP::Post, headers: headers) do |http_request|
    http_request.set_form_data(form)
  end
end

#post_json(url, body:, headers: {}) ⇒ Object



781
782
783
784
785
# File 'lib/kward/tools/search/web.rb', line 781

def post_json(url, body:, headers: {})
  request(url, Net::HTTP::Post, headers: headers) do |http_request|
    http_request.body = JSON.generate(body)
  end
end