Esempio n. 1
0
        /// <summary>
        ///     요청을 처리하여 매칭되는 RouterCallback을 호출합니다.
        /// </summary>
        /// <returns>Response에 클라에 보내질 문자열.</returns>
        public object Route(HttpListenerRequest request, ISerializer serializer)
        {
            var            uri        = request.Url;
            var            url        = uri.AbsolutePath;
            HTTPMethodType methodType = request.GetHTTPMethod();

            RouteInfo targetRouteInfo = null;

            foreach (var routeInfo in RouteInfos)
            {
                if (!routeInfo.IsMatched(methodType, url))
                {
                    continue;
                }
                targetRouteInfo = routeInfo;
            }

            if (targetRouteInfo == null)
            {
                return("wrong path");
            }
            return(targetRouteInfo.RouterCallback(request, targetRouteInfo, serializer));
        }