public void PathRoute()
        {
            var url = new Uri("http://163.com/News/Test/1");

            {
                var pathSegments = PathSegments.Create(url.AbsolutePath);

                var template = new RewritePathTemplate("/{path*}");
                var values   = template.GetRouteValues(pathSegments);

                Assert.AreEqual(values.Count, 1);
                Assert.AreEqual(values.Keys.First(), "path");
                Assert.AreEqual(values.Values.First(), "News/Test/1");
                Assert.AreEqual(values["path"], "News/Test/1");
            }

            {
                var template = new RewriteRequestTemplate("http://163.com/news/{path*}");
                var values   = template.GetRouteValues(new RouteRequestData(new HttpRequestMessage(HttpMethod.Get, url)));

                Assert.AreEqual(values.Count, 1);
                Assert.AreEqual(values.Keys.First(), "path");
                Assert.AreEqual(values.Values.First(), "Test/1");
                Assert.AreEqual(values["path"], "Test/1");
            }
        }
Beispiel #2
0
        public void Host2()
        {
            var template = new RewriteRequestTemplate("//{host}.163.com/{path*}");

            Assert.AreEqual(template.HostTemplate.ToString(), "{host}.163.com");
            Assert.AreEqual(template.PathTemplate.ToString(), "{path*}");
        }
        /// <summary>
        /// insert a rewrite rule to pipeline
        /// </summary>
        /// <param name="pipeline">upstream pipeline</param>
        /// <param name="upstreams">upstream rule, or called route rule.</param>
        /// <param name="downstream">downstream rule, or called rewrite rule</param>
        /// <returns>pipeline with rewrite rule</returns>
        public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate[] upstreams, RewriteRequestTemplate downstream)
        {
            var rewriter = new RewriteRule(upstreams, downstream);

            return(pipeline.JoinPipeline(rewriter));
        }
        /// <summary>
        /// insert a rewrite rule to pipeline
        /// </summary>
        /// <param name="pipeline">upstream pipeline</param>
        /// <param name="template">rewrite template.</param>
        /// <returns>pipeline with rewrite rule</returns>
        public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate template)
        {
            var rewriter = RewriteRule.Create(template);

            return(pipeline.JoinPipeline(rewriter));
        }
 /// <summary>
 /// insert a rewrite rule to pipeline
 /// </summary>
 /// <param name="pipeline">HTTP pipeline</param>
 /// <param name="upstreams">upstream rule, or called route rule.</param>
 /// <param name="downstream">downstream rule, or called rewrite rule</param>
 /// <returns>pipeline with rewrite rule</returns>
 public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate[] upstreams, RewriteRequestTemplate downstream)
 => pipeline.Join(RewriteRule.Create(upstreams, downstream));
 /// <summary>
 /// insert a rewrite rule to pipeline
 /// </summary>
 /// <param name="pipeline">upstream pipeline</param>
 /// <param name="template">rewrite template.</param>
 /// <returns>pipeline with rewrite rule</returns>
 public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate template)
 => pipeline.Join(RewriteRule.Create(template));