public String execute()

in gateway-iot/java/src/main/java/com/aliyun/gateway/iot/Client.java [24:110]


    public String execute(OpenApiRequest request, com.aliyun.teautil.models.RuntimeOptions runtime) throws Exception {
        TeaModel.validateParams(request, "request");
        java.util.Map<String, Object> runtime_ = TeaConverter.buildMap(
            new TeaPair("timeouted", "retry"),
            new TeaPair("readTimeout", runtime.readTimeout),
            new TeaPair("connectTimeout", runtime.connectTimeout),
            new TeaPair("maxIdleConns", runtime.maxIdleConns),
            new TeaPair("retry", TeaConverter.buildMap(
                new TeaPair("retryable", runtime.autoretry),
                new TeaPair("maxAttempts", runtime.maxAttempts)
            )),
            new TeaPair("ignoreSSL", runtime.ignoreSSL)
        );

        TeaRequest _lastRequest = null;
        Exception _lastException = null;
        long _now = System.currentTimeMillis();
        int _retryTimes = 0;
        while (Tea.allowRetry((java.util.Map<String, Object>) runtime_.get("retry"), _retryTimes, _now)) {
            if (_retryTimes > 0) {
                int backoffTime = Tea.getBackoffTime(runtime_.get("backoff"), _retryTimes);
                if (backoffTime > 0) {
                    Tea.sleep(backoffTime);
                }
            }
            _retryTimes = _retryTimes + 1;
            try {
                TeaRequest request_ = new TeaRequest();
                String method = com.aliyun.teautil.Common.defaultString(request.method, "POST");
                request_.method = method;
                com.aliyun.teaurl.models.Url url = com.aliyun.teaurl.Client.parseUrl(_endpoint);
                request_.protocol = url.scheme;
                request_.pathname = com.aliyun.teautil.Common.defaultString(request.pathname, url.path.pathname);
                request_.port = com.aliyun.darabonbanumber.Client.parseInt(url.host.port);
                request_.headers = TeaConverter.merge(String.class,
                    TeaConverter.buildMap(
                        new TeaPair("host", url.host.hostname)
                    ),
                    request.headers
                );
                java.util.Map<String, String> params = new java.util.HashMap<>();
                if (!com.aliyun.teautil.Common.isUnset(request.body)) {
                    java.util.Map<String, Object> tmp = com.aliyun.teautil.Common.assertAsMap(request.body);
                    params = com.aliyun.openapiutil.Client.query(tmp);
                }

                params = TeaConverter.merge(String.class,
                    TeaConverter.buildMap(
                        new TeaPair("AppKey", _appKey)
                    ),
                    request.query,
                    params
                );
                params.put("Signature", Client.sign(method, _appSecret, params));
                if (com.aliyun.teautil.Common.equalString(method, "GET")) {
                    request_.query = params;
                } else {
                    String formObj = com.aliyun.teautil.Common.toFormString(params);
                    request_.body = Tea.toReadable(formObj);
                    request_.headers.put("content-type", "application/x-www-form-urlencoded");
                }

                _lastRequest = request_;
                TeaResponse response_ = Tea.doAction(request_, runtime_, interceptorChain);

                if (com.aliyun.teautil.Common.is4xx(response_.statusCode) || com.aliyun.teautil.Common.is5xx(response_.statusCode)) {
                    Object res = com.aliyun.teautil.Common.readAsJSON(response_.body);
                    java.util.Map<String, Object> err = com.aliyun.teautil.Common.assertAsMap(res);
                    err.put("statusCode", response_.statusCode);
                    throw new TeaException(TeaConverter.buildMap(
                        new TeaPair("code", "" + err.get("Code") + ""),
                        new TeaPair("message", "statusCode: " + err.get("statusCode") + ", errorMessage: " + err.get("ErrorMessage") + ", requestId: " + err.get("RequestId") + ""),
                        new TeaPair("data", err)
                    ));
                }

                return com.aliyun.teautil.Common.readAsString(response_.body);
            } catch (Exception e) {
                if (Tea.isRetryable(e)) {
                    _lastException = e;
                    continue;
                }
                throw e;
            }
        }
        throw new TeaUnretryableException(_lastRequest, _lastException);
    }