我收集了大量已解析为 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
我需要以某种方式将目标域添加到 HTTP header ,但我不确定该怎么做。
最佳答案
非常简单:
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
}
关于c# - 使用具有已知 IP 端点的 System.Net.WebRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050159/