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)); }
/// <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); }