C# 不使用GetResponse()快速测试URL
在C#中,我需要快速测试URL,而不必等待完整的响应。如果有响应或其他快速测试URL的方法,是否有方法退出 我正在从一个网站检索大量数据,只需要确保它事先存在 这就是我现在拥有的:C# 不使用GetResponse()快速测试URL,c#,.net,url,C#,.net,Url,在C#中,我需要快速测试URL,而不必等待完整的响应。如果有响应或其他快速测试URL的方法,是否有方法退出 我正在从一个网站检索大量数据,只需要确保它事先存在 这就是我现在拥有的: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(arg.Sources[i]); try { request.GetResponse(); } catch (Exception ex) {
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(arg.Sources[i]);
try
{
request.GetResponse();
}
catch (Exception ex)
{
CMD("HTML Connection Fail");
return false;
}
CMD("Connection Successful");
等待回复需要很长时间,所以有什么可以替代的吗
那么,是否有其他方法可以在不等待服务器完全响应的情况下测试URL连接
如果您不希望浏览器可能崩溃,请将网站的returnall更改为false:“www.odata.charities.govt.nz/grporgaltestreturns?$filter=RegistrationStatus%20eq%20%27 registered%27&$returnall=true&$format=csv%22”您可以对请求使用该方法,该方法立即返回,而不会阻塞调用线程。您需要提供一个回调函数,一旦客户机从服务器接收到一些响应,就会调用该函数。当然,这个回调将在不同的线程上调用,而不是在实际调用BeginGetResponse方法之后。在这个回调中,您可以放入tr/catch语句,并在需要时解析来自服务器的实际响应。您可以对请求使用该方法,该方法立即返回,而不会阻塞调用线程。您需要提供一个回调函数,一旦客户机从服务器接收到一些响应,就会调用该函数。当然,这个回调将在不同的线程上调用,而不是在实际调用BeginGetResponse方法之后。在这个回调中,您可以放入tr/catch语句,并在需要时解析来自服务器的实际响应。如果不需要接收内容并且需要验证URL的正确性,您可以使用
request.Method=“HEAD”
。但是,这可能不适用于某些服务器。如果您不需要接收内容并且需要验证URL的正确性,则可以使用request.Method=“HEAD”
。但是,某些服务器可能无法使用此方法。请尝试将此方法更改为HEAD
。服务器应该只返回没有正文的标题,因此应该快速返回
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(arg.Sources[i]);
try
{
request.Method = "HEAD";
request.GetResponse();
}
catch (Exception ex)
{
CMD("HTML Connection Fail");
return false;
}
CMD("Connection Successful");
尝试将方法更改为
HEAD
。服务器应该只返回没有正文的标题,因此应该快速返回
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(arg.Sources[i]);
try
{
request.Method = "HEAD";
request.GetResponse();
}
catch (Exception ex)
{
CMD("HTML Connection Fail");
return false;
}
CMD("Connection Successful");
ping URL对您来说是一个解决方案吗?查看Ping类:
ping URL对您来说是一个解决方案吗?查看Ping类:
我不断收到“501未实现”错误。站点的头部为“”,表示其为空。这是导致错误的原因吗?我一直收到“501未实现”错误。站点的标题为“”,表示其为空,这是导致错误的原因?Ping告诉我以下网站不存在,而trust me id不存在:“”Ping告诉我以下网站不存在,而trust me id不存在:“”