C# 使用HttpClient获取时如何防止DNS查找
我不确定我做的是否正确 当C# 使用HttpClient获取时如何防止DNS查找,c#,.net,dns,httpclient,.net-4.6.2,C#,.net,Dns,Httpclient,.net 4.6.2,我不确定我做的是否正确 当保持活动状态设置为false时,下面的方法是否会阻止DNS查找 主持人是:tatoeba.org url是:http://188.213.24.161/eng/sentences/show/1 这里是截图 url在上面显示为 主机设置为下方的 我相信,如果您将主机指定为ip地址(就像您所做的那样),那么.net将跳过dsn查找(无论“保持活动”或“主机头”设置如何) 如果您深入研究一下HttpClient,您会发现它基本上使用HttpWebRequest来发出请求 H
保持活动状态
设置为false时,下面的方法是否会阻止DNS查找
主持人是:tatoeba.org
url是:http://188.213.24.161/eng/sentences/show/1
这里是截图
url在上面显示为
主机设置为下方的
我相信,如果您将主机指定为ip地址(就像您所做的那样),那么.net将跳过dsn查找(无论“保持活动”或“主机头”设置如何) 如果您深入研究一下HttpClient,您会发现它基本上使用HttpWebRequest来发出请求 HttpWebRequest最终使用一个名为ServicePoint的类,该类调用 Dns.TryInternalResolve Dns.TryInternalResolve不尝试解析IP地址 有关更多信息,请参阅: 我还尝试通过运行以下行并使用netmon监视请求来验证这一点
using (HttpClient c = new HttpClient())
{
var response = c.GetAsync(url).Result;
}
我看到,对于包含主机名.net的url,确实会发出dns请求,而对于以ipAddress作为主机名的请求,则没有dns请求