/// <summary> /// HttpHandler의 작업의 메인 메소드입니다. 재정의 하여 원하는 기능을 수행하되, 제일 첫번째에 부모 클래스의 메소들를 호출해주어야 합니다. /// </summary> /// <param name="context"></param> protected override void DoProcessRequest(HttpContext context) { context.ShouldNotBeNull("context"); if(IsDebugEnabled) log.Debug(@"Execution for request from HttpContext is starting..."); try { var productName = context.Request[HttpParams.Product].AsText(); if(IsDebugEnabled) log.Debug("ProductName=[{0}]에 대한 요청 처리를 접수했습니다...", productName); var adapter = DataServiceTool.ResolveDataServiceAdapter(productName); // Silverlight 때문에 요청/응답을 Base64 문자열로 받습니다. var responseText = adapter.Execute(context.Request.InputStream.ToText()); // var responseBytes = adapter.Execute(context.Request.InputStream.ToBytes()); context.WriteResponse(responseText); if(IsDebugEnabled) log.Debug("ProductName=[{0}]에 대한 요청 처리를 완료하였습니다!!!", productName); } catch(Exception ex) { if(log.IsErrorEnabled) log.Error("요청을 처리하는 동안 예외가 발생했습니다.", ex); } }
/// <summary> /// HttpHandler의 작업의 메인 메소드입니다. 재정의 하여 원하는 기능을 수행하되, 제일 첫번째에 부모 클래스의 메소들를 호출해주어야 합니다. /// </summary> /// <param name="context"></param> protected override void DoProcessRequest(HttpContext context) { context.ShouldNotBeNull("context"); if(IsDebugEnabled) log.Debug(@"요청정보를 받아 처리를 시작합니다..."); try { var productName = context.Request[HttpParams.Product].AsText(); if(IsDebugEnabled) log.Debug("ProductName=[{0}]에 대한 요청 처리를 접수했습니다...", productName); var adapter = XmlDataTool.ResolveXmlDataManagerAdapter(productName); var responseBytes = adapter.Execute(context.Request.InputStream.ToBytes()); context.WriteResponse(responseBytes); if(IsDebugEnabled) log.Debug("ProductName=[{0}]에 대한 요청 처리를 완료하였습니다!!!", productName); } catch(Exception ex) { if(log.IsErrorEnabled) log.ErrorException("요청을 처리하는 동안 예외가 발생했습니다.", ex); } }
public void ProcessRequest(HttpContext context) { Type type; MethodInfo method; bool ok; object result; ok = routeCheck(out type, out method, out result); if (ok) { ok = invoke(type, method, out result); } context.WriteResponse(ok, result); }
/// <summary> /// HttpHandler의 작업의 메인 메소드입니다. 재정의 하여 원하는 기능을 수행하되, 제일 첫번째에 부모 클래스의 메소들를 호출해주어야 합니다. /// </summary> /// <param name="context"></param> protected override void DoProcessRequest(HttpContext context) { context.ShouldNotBeNull("context"); if(IsDebugEnabled) log.Debug(@"JSON TEXT 형식의 요청에 대해 작업 후, JSON TEXT 문자열로 반환합니다."); try { var productName = context.Request[HttpParams.Product].AsText(); var method = context.Request[HttpParams.Method].AsText(); var responseFormat = context.Request[HttpParams.ResponseFormat].AsEnum(ResponseFormatKind.ResultSet); if(IsDebugEnabled) log.Debug("ProductName=[{0}], Method=[{1}], ResponseFormat=[{2}] 에 대한 요청 처리를 접수했습니다...", productName, method, responseFormat); var requestMessage = new RequestMessage(); requestMessage.AddItem(method, responseFormat); var dataService = DataServiceTool.ResolveDataService(productName); var responseMessage = dataService.Execute(requestMessage); var responseText = JsonTool.SerializeAsText(responseMessage); var responseBytes = Compressor.Compress(responseText.ToBytes()); context.WriteResponse(responseBytes); //var response = context.Response; //response.OutputStream.Write(responseBytes, 0, responseBytes.Length); //response.OutputStream.Flush(); if(IsDebugEnabled) log.Debug("ProductName=[{0}], Method=[{1}]에 대한 요청 처리를 완료하였습니다!!!", productName, method); } catch(Exception ex) { if(log.IsErrorEnabled) log.Error("요청을 처리하는 동안 예외가 발생했습니다.", ex); } }