public JObject Method(Functions funcName, JObject request, MethodCheckRequestParameters check) { if (!string.IsNullOrEmpty(Token)) request[FieldKeyword.Token] = Token; if (!string.IsNullOrEmpty(Language)) request[FieldKeyword.Language] = Language; JObject response = new JObject(); if (ServerAddr==null|| request == null || (check != null && !check(request))) { response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.CommonBadParameter.ToString(); return response; } var webBinding = new WebHttpBinding(); webBinding.AllowCookies = true; webBinding.MaxReceivedMessageSize = 1000 * 1024 * 1024; webBinding.ReaderQuotas.MaxStringContentLength = 1000 * 1024 * 1024; webBinding.SendTimeout = new TimeSpan(0, 500, 0); webBinding.ReceiveTimeout = new TimeSpan(0, 500, 0); using (var factory = new WebChannelFactory<IService>(webBinding, ServerAddr)) { factory.Endpoint.Behaviors.Add(new WebHttpBehavior()); var session = factory.CreateChannel(); if (session == null || (session as IContextChannel)==null) { response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.CommonBadContext.ToString(); } else using (OperationContextScope scope = new OperationContextScope(session as IContextChannel)) { var temp = request.ToString(); Stream stream = new MemoryStream(KORT.Util.Tools.GZipCompress(Encoding.UTF8.GetBytes(temp))); System.Diagnostics.Debug.WriteLine(request.ToString()); try { using (var responseStream = session.Method(funcName.ToString(), stream)) { using (var decompressStream = new MemoryStream()) { KORT.Util.Tools.GZipDecompress(responseStream, decompressStream); decompressStream.Position = 0; StreamReader reader = new StreamReader(decompressStream, Encoding.UTF8); string text = reader.ReadToEnd(); System.Diagnostics.Debug.WriteLine(text); response = JObject.Parse(text); } } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.Other.ToString(); response[FieldKeyword.ErrorDetail] = e.Message; } } return response; } }
public JObject Method(Functions funcName, JObject request, MethodCheckRequestParameters check) { if (!string.IsNullOrEmpty(Token)) { request[FieldKeyword.Token] = Token; } if (!string.IsNullOrEmpty(Language)) { request[FieldKeyword.Language] = Language; } JObject response = new JObject(); if (ServerAddr == null || request == null || (check != null && !check(request))) { response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.CommonBadParameter.ToString(); return(response); } var webBinding = new WebHttpBinding(); webBinding.AllowCookies = true; webBinding.MaxReceivedMessageSize = 1000 * 1024 * 1024; webBinding.ReaderQuotas.MaxStringContentLength = 1000 * 1024 * 1024; webBinding.SendTimeout = new TimeSpan(0, 500, 0); webBinding.ReceiveTimeout = new TimeSpan(0, 500, 0); using (var factory = new WebChannelFactory <IService>(webBinding, ServerAddr)) { factory.Endpoint.Behaviors.Add(new WebHttpBehavior()); var session = factory.CreateChannel(); if (session == null || (session as IContextChannel) == null) { response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.CommonBadContext.ToString(); } else { using (OperationContextScope scope = new OperationContextScope(session as IContextChannel)) { var temp = request.ToString(); Stream stream = new MemoryStream(KORT.Util.Tools.GZipCompress(Encoding.UTF8.GetBytes(temp))); System.Diagnostics.Debug.WriteLine(request.ToString()); try { using (var responseStream = session.Method(funcName.ToString(), stream)) { using (var decompressStream = new MemoryStream()) { KORT.Util.Tools.GZipDecompress(responseStream, decompressStream); decompressStream.Position = 0; StreamReader reader = new StreamReader(decompressStream, Encoding.UTF8); string text = reader.ReadToEnd(); System.Diagnostics.Debug.WriteLine(text); response = JObject.Parse(text); } } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); response[FieldKeyword.Success] = false; response[FieldKeyword.CommonError] = ErrorNumber.Other.ToString(); response[FieldKeyword.ErrorDetail] = e.Message; } } } return(response); } }
private IAsyncResult BeginMethod(Functions funcName, JObject request, MethodCheckRequestParameters check, AsyncCallback callBackMethod) { var methodDelegate = new KORTClientMethodDelegate(Method); return methodDelegate.BeginInvoke(funcName, request, check, callBackMethod, methodDelegate); }
private IAsyncResult BeginMethod(Functions funcName, JObject request, MethodCheckRequestParameters check, AsyncCallback callBackMethod) { var methodDelegate = new KORTClientMethodDelegate(Method); return(methodDelegate.BeginInvoke(funcName, request, check, callBackMethod, methodDelegate)); }