2013-06-28 3 views
2

Можно ли маршрутизировать запрос GET через прокси-сервер, указав хост в качестве прокси-сервера? Или вам нужно установить назначение пакета?Прокси с запросами HTTP

Я пытаюсь создать HTTPRequestMessage и проложить маршрут через прокси. Тем не менее, у меня нет точного контроля над настройкой адресата отправленного запроса.

ответ

5

Я смог добавить прокси-сервер для HttpClient, HttpWebRequest и HttpRequestMessage. Их не нужно использовать вместе, но я просто нашел два способа сделать HTTP-запросы с прокси-сервером. Чтобы сделать это в приложениях Windows store/metro, вам нужно будет реализовать 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:

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), чтобы отправить это сообщение запроса, и он будет перенаправлен через прокси без дополнительной работы.