如何通过URL检查Web服务器上是否存在文件?

Ale*_*der 9 .net c# http

在我们的应用程序中,我们有一些在线帮助.它非常简单:如果用户单击帮助按钮,则会根据当前语言和帮助上下文构建URL(例如" http://example.com/help/"+ [LANG_ID] +"[HELP_CONTEXT])和在浏览器中调用.

所以我的问题是:如何在不加载完整文件内容的情况下检查Web服务器上是否存在文件?

谢谢你的帮助!

更新:感谢您的帮助.我的问题已得到解答.现在我们有代理身份验证问题,无法发送HTTP请求;)

Gav*_*ler 20

您可以使用.NET执行HEAD请求,然后查看响应的状态.

您的代码看起来像这样(改编自The Lowly HTTP HEAD Request):

// create the request
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

// instruct the server to return headers only
request.Method = "HEAD";

// make the connection
HttpWebResponse response = request.GetResponse() as HttpWebResponse;

// get the status code
HttpStatusCode status = response.StatusCode;
Run Code Online (Sandbox Code Playgroud)

这是一个详细列出StatusCode枚举器可以返回的状态代码的列表.

  • 你应该在try catch中包装`request.GetResponse()`,因为你可能会收到一个WebException(例如,当你尝试做request.GetResponse时,你可能会收到`远程服务器返回错误:(403)Forbidden.的异常. () (2认同)