通过将主机指定为代理,是否可以通过代理路由GET请求?或者你必须设置数据包的目的地吗?
我正在尝试生成HTTPRequestMessage并通过代理路由它。但是,我没有精确的级别控制来设置发送请求的目的地。
答案 0 :(得分:5)
我能够为HttpClient,HttpWebRequest和HttpRequestMessage添加代理。它们不必一起使用,但我发现了两种使用代理进行HTTP请求的方法。要在Windows应用商店/城域网应用程序中执行此操作,您必须实现IWebProxy。
然后您需要做的就是为HttpClient或HttpWebRequest设置代理:
的HttpClient:
HttpClientHandler aHandler = new HttpClientHandler();
IWebProxy proxy = new MyProxy(new Uri("http://xx.xx.xx.xxx:xxxx"));
proxy.Credentials = new NetworkCredential("xxxx", "xxxx");
aHandler.Proxy = proxy;
HttpClient client = new HttpClient(aHandler);
HttpWebRequest的:
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.CreateHttp(uri);
IWebProxy proxy = new MyProxy(new Uri("http://xx.xx.xx.xxx:xxxx"));
proxy.Credentials = new NetworkCredential("xxxx", "xxxx");
webrequest.Proxy = proxy;
HttpRequestMessage
构建HttpRequestMessage之后,您可以使用上面的方法(HttpClient)发送此请求消息,它将通过代理路由,而无需任何额外的工作。