将WebProxy与HttpClient.SendAsync()和HttpRequestMessage一起使用

本文关键字:HttpRequestMessage 一起 WebProxy HttpClient SendAsync | 更新日期: 2023-09-27 18:20:07

我可以通过实现类IWebProxy并执行以下操作来使用代理:HttpClientHandler aHandler=新的HttpClientHandler();

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

通过呼叫客户端。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.

感谢您的帮助!

将WebProxy与HttpClient.SendAsync()和HttpRequestMessage一起使用

将它们直接添加到HttpClient中。

client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0;     Windows NT 6.2; WOW64; Trident/6.0)");
相关文章:
  • 没有找到相关文章