def request(headers, body, options = {}, &block)
      raise ArgumentError, ":method and :path headers are required" unless headers[":method"] && headers[":path"]
      @session.request(headers, body, @config.merge(options), &block)
    end
def request(headers, body, options = {}, &block)
      raise ArgumentError, ":method and :path headers are required" unless headers[":method"] && headers[":path"]
      @session.request(headers, body, @config.merge(options), &block)
    end
Creates a new HTTP request.
 @param headers [Hash<String, String>] the request headers
 @param body [String] the request body
 @param options [Hash<Symbol, Object>] request options
 @param block [Proc] if passed, it will be called when received response headers.