当前位置: 首页>>代码示例>>C#>>正文


C# HttpListenerContext.ToRequest方法代码示例

本文整理汇总了C#中System.Net.HttpListenerContext.ToRequest方法的典型用法代码示例。如果您正苦于以下问题:C# HttpListenerContext.ToRequest方法的具体用法?C# HttpListenerContext.ToRequest怎么用?C# HttpListenerContext.ToRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Net.HttpListenerContext的用法示例。


在下文中一共展示了HttpListenerContext.ToRequest方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProcessRequestAsync

        protected override Task ProcessRequestAsync(HttpListenerContext context)
        {
            if (string.IsNullOrEmpty(context.Request.RawUrl))
                return ((object)null).AsTaskResult();

            var operationName = context.Request.GetOperationName().UrlDecode();

            var httpReq = context.ToRequest(operationName);
            var httpRes = httpReq.Response;
            var handler = HttpHandlerFactory.GetHandler(httpReq);

            var serviceStackHandler = handler as IServiceStackHandler;
            if (serviceStackHandler != null)
            {
                var restHandler = serviceStackHandler as RestHandler;
                if (restHandler != null)
                {
                    httpReq.OperationName = operationName = restHandler.RestPath.RequestType.GetOperationName();
                }

                var task = serviceStackHandler.ProcessRequestAsync(httpReq, httpRes, operationName);
                task.ContinueWith(x => httpRes.Close(), TaskContinuationOptions.OnlyOnRanToCompletion | TaskContinuationOptions.AttachedToParent);
                //Matches Exceptions handled in HttpListenerBase.InitTask()

                return task;
            }

            return new NotImplementedException("Cannot execute handler: " + handler + " at PathInfo: " + httpReq.PathInfo)
                .AsTaskException();
        }
开发者ID:jin29neci,项目名称:ServiceStack,代码行数:30,代码来源:AppHostHttpListenerBase.cs

示例2: ProcessRequestAsync

        protected override Task ProcessRequestAsync(HttpListenerContext context)
        {
            if (string.IsNullOrEmpty(context.Request.RawUrl)) 
                return ((object)null).AsTaskResult();

            var operationName = context.Request.GetOperationName();

            var httpReq = context.ToRequest(operationName);
            var httpRes = httpReq.Response;
            var handler = HttpHandlerFactory.GetHandler(httpReq);

            var serviceStackHandler = handler as IServiceStackHandler;
            if (serviceStackHandler != null)
            {
                var restHandler = serviceStackHandler as RestHandler;
                if (restHandler != null)
                {
                    httpReq.OperationName = operationName = restHandler.RestPath.RequestType.Name;
                }

                var task = serviceStackHandler.ProcessRequestAsync(httpReq, httpRes, operationName);                
                task.ContinueWith(x => httpRes.Close());

                return task;
            }

            return new NotImplementedException("Cannot execute handler: " + handler + " at PathInfo: " + httpReq.PathInfo)
                .AsTaskException();
        }
开发者ID:0815sugo,项目名称:ServiceStack,代码行数:29,代码来源:AppHostHttpListenerBase.cs

示例3: CreateHttpRequest

 private static IHttpRequest CreateHttpRequest(HttpListenerContext context)
 {
     var operationName = context.Request.GetOperationName();
     var httpReq = context.ToRequest(operationName);
     return httpReq;
 }
开发者ID:BilliamBrown,项目名称:ServiceStack,代码行数:6,代码来源:HttpListenerBase.cs

示例4: HandleError

        public static void HandleError(Exception ex, HttpListenerContext context)
        {
            try
            {
                Log.ErrorFormat("Error this.ProcessRequest(context): [{0}]: {1}", ex.GetType().GetComplexTypeName(), ex.Message);

                var errorResponse = new ErrorResponse
                {
                    ResponseStatus = new ResponseStatus
                    {
                        ErrorCode = ex.GetType().GetComplexTypeName(),
                        Message = ex.Message,
                        StackTrace = ex.StackTrace,
                    }
                };

                var operationName = context.Request.GetOperationName();
                var httpReq = context.ToRequest(operationName);
                var httpRes = httpReq.Response;
                var contentType = httpReq.ResponseContentType;

                var serializer = HostContext.ContentTypes.GetResponseSerializer(contentType);
                if (serializer == null)
                {
                    contentType = HostContext.Config.DefaultContentType;
                    serializer = HostContext.ContentTypes.GetResponseSerializer(contentType);
                }

                var httpError = ex as IHttpError;
                if (httpError != null)
                {
                    httpRes.StatusCode = httpError.Status;
                    httpRes.StatusDescription = httpError.StatusDescription;
                }
                else
                {
                    httpRes.StatusCode = 500;
                }

                httpRes.ContentType = contentType;

                serializer(httpReq, errorResponse, httpRes);

                httpRes.Close();
            }
            catch (Exception errorEx)
            {
                var error = "Error this.ProcessRequest(context)(Exception while writing error to the response): [{0}]: {1}"
                            .Fmt(errorEx.GetType().GetComplexTypeName(), errorEx.Message);
                Log.ErrorFormat(error);
            }
        }
开发者ID:BBSDeadEye,项目名称:ServiceStack,代码行数:52,代码来源:HttpListenerBase.cs


注:本文中的System.Net.HttpListenerContext.ToRequest方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。