Module: Tiktok::Open::Sdk::HttpClient

Extended by:
HttpClient
Included in:
HttpClient
Defined in:
lib/tiktok/open/sdk/http_client.rb

Overview

HTTP client utilities for TikTok Open SDK.

Provides methods to perform HTTP requests with support for GET and POST.

Constant Summary collapse

SUPPORTED_METHODS =

Supported HTTP methods.

i[get post].freeze

Instance Method Summary collapse

Instance Method Details

#get(url, params: {}, headers: {}) ⇒ Net::HTTPResponse

Performs a GET HTTP request.

Parameters:

  • url (String)

    The request URL.

  • params (Hash) (defaults to: {})

    Query parameters.

  • headers (Hash) (defaults to: {})

    HTTP headers.

Returns:

  • (Net::HTTPResponse)

    The HTTP response object.



60
61
62
# File 'lib/tiktok/open/sdk/http_client.rb', line 60

def get(url, params: {}, headers: {})
  request(:get, url, params: params, headers: headers)
end

#post(url, params: {}, headers: {}, body: nil) ⇒ Net::HTTPResponse

Performs a POST HTTP request.

Parameters:

  • url (String)

    The request URL.

  • params (Hash) (defaults to: {})

    Query parameters.

  • headers (Hash) (defaults to: {})

    HTTP headers.

  • body (Hash, nil) (defaults to: nil)

    Request body.

Returns:

  • (Net::HTTPResponse)

    The HTTP response object.



50
51
52
# File 'lib/tiktok/open/sdk/http_client.rb', line 50

def post(url, params: {}, headers: {}, body: nil)
  request(:post, url, params: params, headers: headers, body: body)
end

#request(method, url, params: {}, headers: {}, body: nil) ⇒ Net::HTTPResponse

Performs an HTTP request.

Parameters:

  • method (Symbol)

    The HTTP method (:get, :post).

  • url (String)

    The request URL.

  • params (Hash) (defaults to: {})

    Query parameters for GET requests.

  • headers (Hash) (defaults to: {})

    HTTP headers.

  • body (Hash, nil) (defaults to: nil)

    Request body for POST requests.

Returns:

  • (Net::HTTPResponse)

    The HTTP response object.

Raises:

  • (ArgumentError)

    If the method is not supported.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tiktok/open/sdk/http_client.rb', line 28

def request(method, url, params: {}, headers: {}, body: nil)
  ensure_supported_method!(method)

  uri       = URI(url)
  uri.query = URI.encode_www_form(params) if method == :get && params.any?

  http              = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl      = uri.scheme == 'https'
  http.read_timeout = 10
  http.open_timeout = 5
  http_request      = build_http_request(method, uri, headers, body)

  http.request(http_request)
end