5

是否可以通过将主机指定为代理来通过代理路由 GET 请求?还是您必须设置数据包的目的地?

我正在尝试生成一个 HTTPRequestMessage 并通过代理对其进行路由。但是,我没有设置发送请求的目的地的精细级别控制。

4

1 回答 1

8

我能够为 HttpClient、HttpWebRequest 和 HttpRequestMessage 添加代理。它们不必一起使用,但我刚刚找到了两种使用代理发出 HTTP 请求的方法。要在 Windows 商店/地铁应用程序中执行此操作,您必须实现 IWebProxy。

看看这个实现 IWebProxy:http ://social.msdn.microsoft.com/Forums/windowsapps/en-US/6e20c2c0-105c-4d66-8535-3ddb9a048b69/bug-missing-type-webproxy-cant-set -proxy-then-where-is-the-appconfig

然后您需要做的就是为 HttpClient 或 HttpWebRequest 设置代理:

客户端:

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

HttpWeb请求:

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)来发送这个请求消息,它会通过代理路由而无需任何额外的工作。

于 2013-07-09T21:29:53.600 回答