Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HttpClient获取时如何防止DNS查找_C#_.net_Dns_Httpclient_.net 4.6.2 - Fatal编程技术网

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请求