Class: TencentCloud::Common::ApiRequset
- Inherits:
-
Object
- Object
- TencentCloud::Common::ApiRequset
- Defined in:
- lib/tencentcloud-sdk-common/http/request.rb
Overview
common http request class
Instance Method Summary collapse
-
#initialize(scheme, host, port = nil, timeout = 60, proxy = nil) ⇒ ApiRequset
constructor
A new instance of ApiRequset.
- #send_request(request, keep_alive = false) ⇒ Object
Constructor Details
#initialize(scheme, host, port = nil, timeout = 60, proxy = nil) ⇒ ApiRequset
Returns a new instance of ApiRequset.
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/tencentcloud-sdk-common/http/request.rb', line 10 def initialize(scheme, host, port = nil, timeout = 60, proxy = nil) port = 443 if scheme == 'https' if proxy.nil? @conn = Net::HTTP.new(host, port) else p = URI(proxy) @conn = Net::HTTP.new(host, port, p.host, p.port, p.user, p.pass) end @conn.use_ssl = scheme == 'https' @conn.read_timeout = timeout end |
Instance Method Details
#send_request(request, keep_alive = false) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/tencentcloud-sdk-common/http/request.rb', line 22 def send_request(request, keep_alive = false) uri = URI("#{request.scheme}://#{request.host}#{request.uri}") @conn.keep_alive_timeout = 20 if keep_alive @conn.start do |http| case request.method when 'GET' uri.query = request.data req = Net::HTTP::Get.new uri when 'POST' req = Net::HTTP::Post.new uri req.body = request.data else raise TencentCloudSDKException.new('ClientParamsError', 'Method only support (GET, POST)') end request.header.each do |k, v| req[k] = v end resp = http.request req BaseResponse.new(resp.code, resp.each_header.to_h, resp.read_body) end end |