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: nil) ⇒ NetHttpClient

Returns a new instance of NetHttpClient.



725
726
727
# File 'lib/kward/tools/search/web.rb', line 725

def initialize(user_agent: nil)
  @user_agent = user_agent
end

Instance Method Details

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



729
730
731
# File 'lib/kward/tools/search/web.rb', line 729

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

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



733
734
735
# File 'lib/kward/tools/search/web.rb', line 733

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

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



737
738
739
740
741
742
743
# File 'lib/kward/tools/search/web.rb', line 737

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



745
746
747
748
749
# File 'lib/kward/tools/search/web.rb', line 745

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



751
752
753
754
755
# File 'lib/kward/tools/search/web.rb', line 751

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