Example #1
0
        public void IsProxyEqualsTest()
        {
            var x = new HttpProxy("localhost", 80, "abc", "123");
            var y = new HttpProxy("localhost", 80, "abc", "456");
            var z = new WebProxy("http://localhost")
            {
                Credentials = new NetworkCredential("abc", "456")
            };

            Assert.False(HttpProxy.IsProxyEquals(x, y));
            Assert.True(HttpProxy.IsProxyEquals(z, y));
        }
Example #2
0
        /// <summary>
        /// 执行前
        /// </summary>
        /// <param name="context">上下文</param>
        /// <returns></returns>
        public override Task BeforeRequestAsync(ApiActionContext context)
        {
            var handler   = context.HttpApiConfig.HttpHandler;
            var proxyUsed = handler.UseProxy && handler.Proxy != null;

            if (proxyUsed == false)
            {
                handler.UseProxy = true;
                handler.Proxy    = this.httpProxy;
            }
            else if (HttpProxy.IsProxyEquals(handler.Proxy, this.httpProxy) == false)
            {
                throw new HttpApiConfigException("不支持在请求之后切换代理设置");
            }
            return(ApiTask.CompletedTask);
        }