dotnet 使用 HttpClient 发送请求时指定服务器 IP 地址

因为 DNS 的存在,我们发送一个 HTTP 请求时无需关心域名对应的 IP 地址究竟是什么。
var http = new HttpClient();var html = await http.GetStringAsync("https://www.coderbusy.com");
出于优化访问速度或负载均衡等原因,不同的时刻、不同的地区访问同一个资源时对应的 WEB 服务器可能是不相同的。
比如在访问 luyao.coderbusy.com 这个 CDN 域名时,用户会被解析到距离最近的节点上,可以通过站长工具查看详情:.
https://ping.chinaz.com/luyao.coderbusy.com 
dotnet 使用 HttpClient 发送请求时指定服务器 IP 地址

出于某些原因,我们可能需要使用指定的 IP 地址来处理请求,而不是使用 DNS 解析结果。要做到这一点,除了在本地修改 HOST 文件之外,还可以使用以下代码:(假设需要请求本机架设的模拟服务器,地址就是 127.0.0.1 )

var http = new HttpClient();//把 Host 部分替换为要请求的域名var url = "https://127.0.0.1/";using (var request = new HttpRequestMessage(HttpMethod.Get, url)){  request.Headers.Host = "www.coderbusy.com";//这里填写真实的 HOST  using (var response = await http.SendAsync(request))  {    Console.WriteLine(await response.Content.ReadAsStringAsync());  }}