Beispiel #1
0
        public void ProcessRequest(IDictionary <string, object> environment,
                                   ResponseCallBack responseCallBack, Action <Exception> errorCallback)
        {
            Dictionary <string, dynamic> nrackEnvironment = GetNrackEnvironment(environment);

            var config   = ConfigResolver.GetRackConfigInstance();
            var builder  = new Builder(config.ExecuteStart);
            var response = new OwinResponseAdapter(builder.Call(nrackEnvironment));

            responseCallBack(response.Status, response.Headers.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToString()),
                             (next, error, complete) =>
            {
                try
                {
                    next(response.GetBody(), null);
                    complete();
                }
                catch (Exception ex)
                {
                    error(ex);
                }

                return(() => { });
            });
        }
Beispiel #2
0
        /*
         *
         * @param input
         * @param callback
         * @
         *
         * Documentation URL: https://docs.qingcloud.com/qingstor/api/service/get.html
         */

        public void listBucketsAsync(
            ListBucketsInput input, ResponseCallBack callback)
        {
            if (input == null)
            {
                input = new ListBucketsInput();
            }

            Dictionary <object, object> context = new Dictionary <object, object>();

            context.Add(QSConstant.PARAM_KEY_REQUEST_ZONE, this.zone);
            context.Add(QSConstant.EVN_CONTEXT_KEY, this.evnContext);
            context.Add("OperationName", "ListBuckets");
            context.Add("APIName", "ListBuckets");
            context.Add("ServiceName", "Get Service");
            context.Add("RequestMethod", "GET");
            context.Add("RequestURI", "/");
            context.Add("bucketNameInput", this.bucketName);

            if (callback == null)
            {
                throw new QSException("callback can't be null");
            }

            ResourceRequestFactory.getResourceRequest().sendApiRequestAsync(context, input, callback);
        }
Beispiel #3
0
        public void sendApiRequestAsync(
            Dictionary <object, object> context, RequestInputModel paramBean, ResponseCallBack callback)
        {
            string validate = paramBean != null?paramBean.validateParam() : "";

            Config Config         = (Config)context[Constant.CONFIG_CONTEXT_KEY];
            string configValidate = Config.validateParam();

            if (!StringUtil.isEmpty(validate) || !StringUtil.isEmpty(configValidate))
            {
                if (StringUtil.isEmpty(validate))
                {
                    validate = configValidate;
                }
                OutputModel Out = ParamInvokeUtil.getOutputModel(callback);
                HttpRequestClient.fillResponseCallbackModel(Constant.REQUEST_ERROR_CODE, validate, Out);
                callback.onAPIResponse(Out);
            }
            else
            {
                HttpWebRequest request = buildRequest(context, paramBean);
                HttpRequestClient.getInstance()
                .requestActionAsync(request, Config.isSafeOkHttp(), callback);
            }
        }
        public void sendApiRequestAsync(
            Dictionary <object, object> context, RequestInputModel paramBean, ResponseCallBack callback)
        {
            string validate = paramBean != null?paramBean.validateParam() : "";

            EvnContext evnContext  = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY];
            string     evnValidate = evnContext.validateParam();

            if (!QSStringUtil.isEmpty(validate) || !QSStringUtil.isEmpty(evnValidate))
            {
                if (QSStringUtil.isEmpty(validate))
                {
                    validate = evnValidate;
                }
                OutputModel Out = QSParamInvokeUtil.getOutputModel(callback);
                QSHttpRequestClient.fillResponseCallbackModel(QSConstant.REQUEST_ERROR_CODE, validate, Out);
                callback.onAPIResponse(Out);
            }
            else
            {
                HttpWebRequest request = buildRequest(context, paramBean);
                QSHttpRequestClient.getInstance()
                .requestActionAsync(request, evnContext.isSafeOkHttp(), callback);
            }
        }
Beispiel #5
0
    /// /// <summary>
    /// 发送get请求
    /// </summary>
    /// <param name="callBack"></param>
    /// <returns></returns>
    public void SendGet(string url, ResponseCallBack callBack)
    {
        Uri uri = new Uri(url);

        m_WebRequest = UnityWebRequest.Get(uri);

        StartCoroutine(DoGet(callBack));
    }
Beispiel #6
0
    /// <summary>
    /// 发送post请求
    /// </summary>
    /// <param name="url"></param>
    /// <param name="callBack"></param>
    public void SendPost(string url, WWWForm form, ResponseCallBack callBack)
    {
        Uri uri = new Uri(url);

        m_WebRequest = UnityWebRequest.Post(uri, form);

        StartCoroutine(DoPost(callBack));
    }
Beispiel #7
0
    private IEnumerator DoGet(ResponseCallBack callBack)
    {
        yield return(m_WebRequest.SendWebRequest());

        if (m_WebRequest.isNetworkError)
        {
            AppDebug.Log("HTTP do get error:");
        }
        else
        {
            AppDebug.Log("HTTP get return: " + m_WebRequest.downloadHandler.text);

            callBack(m_WebRequest.downloadHandler.text);
        }
    }
 private void onOkhttpFailure(String message, ResponseCallBack callBack)
 {
     try
     {
         if (callBack != null)
         {
             OutputModel m = QSParamInvokeUtil.getOutputModel(callBack);
             fillResponseCallbackModel(QSConstant.REQUEST_ERROR_CODE, message, m);
             callBack.onAPIResponse(m);
         }
     }
     catch (Exception ee)
     {
         logger.Fatal(ee.Message);
         throw new Exception(ee.Message);
     }
 }
        public static OutputModel getOutputModel(ResponseCallBack o)
        {
            Type[] typeClass = o.GetType().GetInterfaces();

            try
            {
                if (typeClass[0] is Type)
                {
                    Type actualType = (Type)typeClass[0].GetType().GetGenericTypeDefinition().GetGenericArguments().First();
                    return((OutputModel)Activator.CreateInstance(actualType));
                }
                else
                {
                    return((OutputModel)Activator.CreateInstance(typeof(OutputModel)));
                }
            }
            catch (Exception e)
            {
                throw new QCException(e.Message);
            }
        }
Beispiel #10
0
        public void sendApiRequestAsync(String requestUrl, Dictionary <object, object> context, ResponseCallBack callback)
        {
            Config         Config  = (Config)context[Constant.CONFIG_CONTEXT_KEY];
            HttpWebRequest request = HttpRequestClient.getInstance().buildUrlRequest(requestUrl);

            HttpRequestClient.getInstance().requestActionAsync(request, Config.isSafeOkHttp(), callback);
        }
        public void sendApiRequestAsync(String requestUrl, Dictionary <object, object> context, ResponseCallBack callback)
        {
            EvnContext     evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY];
            HttpWebRequest request    = QSHttpRequestClient.getInstance().buildUrlRequest(requestUrl);

            QSHttpRequestClient.getInstance().requestActionAsync(request, evnContext.isSafeOkHttp(), callback);
        }
        public virtual OutputModel requestActionAsync(HttpWebRequest request, Boolean bSafe, ResponseCallBack callBack)
        {
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            try
            {
                if (callBack != null)
                {
                    OutputModel m = QSParamInvokeUtil.getOutputModel(callBack);
                    fillResponseValue2Object(response, m);
                    callBack.onAPIResponse(m);
                }
            }
            catch (Exception e)
            {
                logger.Fatal(e.Message);
                onOkhttpFailure(e.Message, callBack);
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
            return(null);
        }
        //异步调用方法
        public virtual OutputModel RunrequestActionAsync(HttpWebRequest request, Boolean bSafe, ResponseCallBack callBack)
        {
            Asyncdelegate isgt = new Asyncdelegate(requestActionAsync);
            IAsyncResult  ar   = isgt.BeginInvoke(request, bSafe, callBack, new AsyncCallback(CallbackMethod), isgt);

            return(null);
        }