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(() => { }); }); }
/* * * @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); }
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); } }
/// /// <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)); }
/// <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)); }
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); } }
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); }