因为 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 。
出于某些原因,我们可能需要使用指定的 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()); } }