我有一大堆已经解析为IP地址的DNS名称.有了这个集合,我需要从他们那里下载HTML.这是一个非常大的列表,我需要尽可能高效地完成它.
我正在使用System.Net.HttpWebRequest从每个域下载HTML.HttpWebRequest正在重复DNS查找,这增加了连接时间.我已经运行测试,看看端口80上的那些IP的套接字是否能够更快地连接,而且确实如此.
所以我想使用已知IP地址的HttpWebRequest,但我不知道如何.所有WebRequest工厂方法都需要URL.
现在我想我可以做这样的事情(其中1.2.3.4是IP)
var req = WebRequest.Create("http://1.2.3.4/");
req.Headers.Add(....); <-- add something here
Run Code Online (Sandbox Code Playgroud)
我需要以某种方式向HTTP头添加目标域的内容,但我不知道该怎么做.
很简单:
var ip = "93.184.216.119";
var host = "example.com";
var ipUri = new UriBuilder(Uri.UriSchemeHttp, ip).Uri;
var request = WebRequest.CreateHttp(ipUri);
request.Host = host;
using (var response = request.GetResponse())
{
// do something with response
}
Run Code Online (Sandbox Code Playgroud)