Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# 确定URL的有效性而不触发页面(如果有效)?_C#_Http_Url - Fatal编程技术网

C# 确定URL的有效性而不触发页面(如果有效)?

C# 确定URL的有效性而不触发页面(如果有效)?,c#,http,url,C#,Http,Url,我想在不触发返回页面的服务器响应的情况下确定URL是否有效。(即:不使用网页) 不触发动作本身(顺便说一句,它使用SeleniumWebDriver并启动FirefoxDriver实例,这就是我知道页面正在被使用的方式。) 有没有一种方法可以说“嘿,服务器,我不想要这个页面,但它存在吗?”而不让服务器实际返回页面?您可以发送http“HEAD”命令(而不是“GET”、“POST”等)来返回页面头。如果页面存在,服务器应该返回200,如果不存在,服务器应该返回404 大概是这样的: HttpCli

我想在不触发返回页面的服务器响应的情况下确定URL是否有效。(即:不使用网页)

不触发动作本身(顺便说一句,它使用SeleniumWebDriver并启动FirefoxDriver实例,这就是我知道页面正在被使用的方式。)

有没有一种方法可以说“嘿,服务器,我不想要这个页面,但它存在吗?”而不让服务器实际返回页面?

您可以发送http“HEAD”命令(而不是“GET”、“POST”等)来返回页面头。如果页面存在,服务器应该返回200,如果不存在,服务器应该返回404

大概是这样的:

HttpClient httpClient = new HttpClient();

HttpRequestMessage request = 
             new HttpRequestMessage(HttpMethod.Head, 
                                    new Uri("http://www.google.com"));

HttpResponseMessage response = await httpClient.SendAsync(request);

祝你好运

我确实说过要测试的页面在MVC站点中。调用代码技术是100%无关的,因为我可以以任何必要的方式实现它。很抱歉,直到现在才收到您的问题,您是否尝试使用
UrlExists()
?签出。你不能只返回一个空的响应吗?我不认为我完全理解这一点。服务器将必须返回一些内容,以便您知道url是否有效。不,您无法从外部控制服务器将如何处理您的请求(是否有头),而知道url是否有效的唯一方法是向该url发出请求。它仍然导致控制器触发动作。不过,这是一种有趣的方法。您可以尝试使用选项或跟踪动词。