【问题标题】:C# Check if HTTP URL exists without using HEADC#检查HTTP URL是否存在而不使用HEAD
【发布时间】:2016-05-16 19:45:28
【问题描述】:

我需要通过不支持 HEAD 请求的 HTTP 检查 Web 服务器上是否存在远程文件(即使文件存在也返回 404)。 GET 请求确实返回 200 但我不需要下载可能很大的文件。我也尝试了套接字连接,但即使文件不存在,它们也会返回 200。有关如何检查远程 URL 是否有效存在的任何建议?谢谢。

【问题讨论】:

  • 可能只下载 1 MB,并假设如果文件更大,文件存在?

标签: c# url


【解决方案1】:

好吧,您需要发出下载文件的请求,但不要读取响应流。如果使用 HttpWebRequest,请求将在服务器发送 headers 时执行,而不是文件的内容,所以你可以得到响应,检查 headers 并处理它,它不会下载完整的文件,只是一些字节当您检查标题时。

【讨论】:

  • HttpWebRequest 会是GET? OP 说,有错误的标题。
  • HttpWebRequest 将是 OP 设置的类型,因此它可以是 GET POST 或服务器期望的任何内容,只需像下载文件一样滚动相同的请求。
  • 我的错,错误的 200 代码与 GET 无关。 +1
  • 感谢您的回复,@Gusman。我正在尝试您的建议,但仍在完整下载响应。你介意提供一个代码 sn-p 显示 HttpWebRequest 的用法吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 2011-05-09
相关资源
最近更新 更多