C# 从服务器获取响应代码的最快方法是什么?
我有一个WPF项目,需要尽快检查提供url的服务器上是否存在文件 我制作了一个使用WebRequest的小方法C# 从服务器获取响应代码的最快方法是什么?,c#,http-response-codes,C#,Http Response Codes,我有一个WPF项目,需要尽快检查提供url的服务器上是否存在文件 我制作了一个使用WebRequest的小方法 public bool URLExists(string url) { bool result = true; WebRequest webRequest = WebRequest.Create(url); webRequest.Timeout = 1200; webRequest.Method = "HEAD"; try {
public bool URLExists(string url)
{
bool result = true;
WebRequest webRequest = WebRequest.Create(url);
webRequest.Timeout = 1200;
webRequest.Method = "HEAD";
try
{
webRequest.GetResponse();
}
catch (Exception)
{
result = false;
}
return result;
}
虽然这是工作,我认为这可以做得更快
我已经读到你可以使用套接字,但我还没有找到足够的运气来真正理解和尝试,我甚至不知道这是否是一个更好的选择
我的问题是:根据文件的url,检查web服务器上是否存在文件的最快方法是什么
我之所以问这个问题是因为web服务器的文件夹结构如下所示:someserver.com/0/1/2.html,我有三个for循环设置如下:
for (int x = 2; x < 10; x++)
{
for (int y = 0; y < 80; y++)
{
for (int z = 0; z < 100; z++)
{
var url = string.Format("http://www.somserver.com/{0}/{1}/{2}.html", x, y, z);
if (URLExists(url))
{
DownloadFileAsync(new Uri(url), filePath);
}
}
}
}
for(int x=2;x<10;x++)
{
对于(int y=0;y<80;y++)
{
对于(intz=0;z<100;z++)
{
var url=string.Format(“http://www.somserver.com/{0}/{1}/{2}.html”,x,y,z);
如果(url存在(url))
{
DownloadFileAsync(新Uri(url)、文件路径);
}
}
}
}
我知道我想等待,而不是一次下载数千次,但这是为了说明我的目的。不需要请求检查文件是否存在,实际上您可以尝试下载它,如果它不存在,则捕获该错误。我认为并行检查多个URL是很有意义的,尽管限制并行请求的数量(对服务器来说)会很好。您可以在自己的任务中激发每个请求,并通过调用某些同步侦听器函数进行报告。接下来会发生什么取决于成功后要做什么:一个现有的URL是否足够,还是要下载所有现有的URL?我试图启动下载异步,但找不到检查文件是否存在的方法。它只是下载不需要什么。我想下载所有现有的文件。我会尝试用不同的方式设置。谢谢你的评论。