Class: Tcat::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/tcat/http_client.rb

Defined Under Namespace

Classes: RequestError

Constant Summary collapse

DEFAULT_HEADERS =
{
  'User-Agent' => 'BlackCat/2.49.1 (iPhone; iOS 18.4.1; Scale/3.00)',
  'Accept-Language' => 'zh-Hant-TW;q=1, en-TW;q=0.9',
  'Cookie' => 'citrix_ns_id=AAE7go4rZDusCRcEAAAAADuVBLGLdqo1FolMO02r_jOEnjNmr4u9sIYwtllmmfsOOw==KJArZA==AQJLxyeLYOXPo3Uzfh_rWrr_NcU=; ASP.NET_SessionId=p4v1z4nijrynbortgf4iqml4'
}.freeze
API_ENDPOINT =
'https://www.t-cat.com.tw/iPhone/TCatApp.aspx'
API_VERSION =
'25'

Instance Method Summary collapse

Constructor Details

#initialize(timeout: 30) ⇒ HttpClient

Returns a new instance of HttpClient.



18
19
20
# File 'lib/tcat/http_client.rb', line 18

def initialize(timeout: 30)
  @timeout = timeout
end

Instance Method Details

#post(params) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/tcat/http_client.rb', line 22

def post(params)
  uri = URI("#{API_ENDPOINT}?ver=#{API_VERSION}")
  http = setup_http_client(uri)

  request = Net::HTTP::Post.new(uri)
  DEFAULT_HEADERS.each { |key, value| request[key] = value }
  request.body = URI.encode_www_form(params)

  handle_response(http.request(request))
rescue Net::ReadTimeout, Net::OpenTimeout => e
  raise RequestError, "Request timeout: #{e.message}"
rescue SocketError, Net::HTTPError => e
  raise RequestError, "Network error: #{e.message}"
rescue StandardError => e
  raise RequestError, "Unexpected error: #{e.message}"
end