2013-06-27 3 views
2

Я могу использовать прокси, реализуя класс IWebProxy и делая это: HttpClientHandler aHandler = new HttpClientHandler();Использование WebProxy с HttpClient.SendAsync() и HttpRequestMessage

aHandler.UseCookies = true; 
aHandler.AllowAutoRedirect = true; 
IWebProxy proxy = new AWProxy(new Uri("http://xx.xx.xxx.xxx:xxxx")); 
proxy.Credentials = new NetworkCredential("xxxx", "xxxx"); 
aHandler.Proxy = proxy; 

HttpClient client = new HttpClient(aHandler); 

Позвонив client.GetAsync («http://google.com») Я был в состоянии получить успешное ответное сообщение. Однако я хочу иметь возможность использовать HttpRequestMessage для управления заголовками и размещением/размещением контента.

HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, uri); 

//add other headers 
requestMessage.Headers.UserAgent.ParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"); 

HttpResponseMessage response = await client.SendAsync(requestMessage); 

Но если я использую HttpRequestMessage я получаю это исключение:

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Unable to connect to the remote server. ---> System.NullReferenceException: Object reference not set to an instance of an object. 

Любой помощь ценится, спасибо!

+0

Что такое столбец исключения NullReferenceException? Вы уверены, что это не вызов вашей прокси-реализации? – TheESJ

ответ

0

Добавьте их непосредственно в свой HttpClient.

client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0;  Windows NT 6.2; WOW64; Trident/6.0)"); 
+0

Спасибо, не знал, что это было возможно. Тем не менее, я также хочу иметь возможность генерировать различные типы запросов, таких как post, put, delete, options, trace, get, head. Я считаю, что клиент http поддерживает только сообщения, помещает, удаляет и получает. – KrispyDonuts

+0

@Ryan Использовать 'SendAsync' с' new RequestMessage() {Method = new HttpMethod ("TRACE")} ' –

+0

Спасибо Даррелл! Я попробую это. – KrispyDonuts

Смежные вопросы