code: function _request (client, url, body, method, callback, times = 1) {
    if (client.isDebug) {
      debug('Push URL :' + url)
      if (body) {
        debug('Body :' + body)
      }
      // debug("Auth :" + JSON.stringify(auth))
      debug('Method :' + method)
      debug('Times/MaxTryTimes : ' + times + '/' + client.maxTryTimes)
    }
  
    var _callback = function (err, res, body) {
      if (err) {
        if (err.code === 'ETIMEDOUT' && err.syscall !== 'connect') {
          // response timeout
          return callback(new JError.APIConnectionError(
            'Response timeout. Your request to the server may have already received, please check whether or not to push',
            true))
        } else if (err.code === 'ENOTFOUND') {
          // unknown host
          return callback(new JError.APIConnectionError('Known host : ' + url))
        }
        // other connection error
        if (times < client.maxTryTimes) {
          return _request(client, url, body, method, callback, times + 1)
        } else {
          return callback(new JError.APIConnectionError('Connect timeout. Please retry later.'))
        }
      }
      if (res.statusCode === 200) {
        if (body.length !== 0) {
          if (client.isDebug) {
            debug('Success, response : ' + body)
          }
  
          try {
            callback(null, JSON.parse(body))
          } catch (e) {
            callback(e)
          }
        } else {
          if (client.isDebug) {
            debug('Success, response : ' + body)
          }
          callback(null, 200)
        }
      } else {
        if (client.isDebug) {
          debug('Fail, HttpStatusCode: ' + res.statusCode + ' result: ' + body.toString())
        }
        callback(new JError.APIRequestError(res.statusCode, body))
      }
    }
  
    Request[method.toLowerCase()]({
      url: url,
      body: body,
      auth: {
        user: client.appkey,
        pass: client.masterSecret
      },
      timeout: client.readTimeOut,
      proxy: client.proxy
    }, _callback)
  }
docs: Proxy start Proxy end