是否可以通过将主机指定为代理来通过代理路由 GET 请求?或者您是否必须设置数据包的目的地?
我正在尝试生成 HTTPRequestMessage 并通过代理路由它。但是,我没有精细级别的控制来设置发送请求的目的地。
最佳答案
我能够为 HttpClient、HttpWebRequest 和 HttpRequestMessage 添加代理。它们不必一起使用,但我只是找到了两种使用代理发出 HTTP 请求的方法。要在 windows store/metro 应用程序中执行此操作,您必须实现 IWebProxy。
然后您需要做的就是为 HttpClient 或 HttpWebRequest 设置代理:
HTTP 客户端:
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) 发送此请求消息,它将通过代理路由,无需任何额外工作。
关于c# - 代理 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367219/