具有HTTP请求的代理

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

我正在尝试生成HTTPRequestMessage并通过代理路由它。 但是,我没有精确的级别控制来设置发送请求的目的地。

我能够为HttpClient,HttpWebRequest和HttpRequestMessage添加代理。 它们不必一起使用,但我发现了两种使用代理进行HTTP请求的方法。 要在Windowsapp store/城域网应用程序中执行此操作,您必须实现IWebProxy。

看看这个实现IWebProxy: http ://social.msdn.microsoft.com/Forums/windowsapps/en-US/6e20c2c0-105c-4d66-8535-3ddb9a048b69/bug-missing-type-webproxy-cant-set -proxy -则-其中-是最的AppConfig

然后你需要做的就是为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)发送此请求消息,它将通过代理路由,无需任何额外的工作。