【问题标题】:How to check if a link exists or not in VC++?如何在 VC++ 中检查链接是否存在?
【发布时间】:2010-01-05 05:53:34
【问题描述】:

我有一个链接。我已经通过正则表达式检查了该链接是否是有效的 URL。现在,我想检查该链接是否是有效的 http 链接。即它不应该是一个不存在的链接。 VC++ 6.0 (MFC) 有办法检查吗?

【问题讨论】:

  • 你的意思是它是否真的指定了一个正在运行的服务器并检索资源?

标签: c++ visual-c++ mfc


【解决方案1】:

一种选择是尝试使用 URLOpenBlockingStream function 从该 URL 获取数据。

例子:

#include <Urlmon.h>

IStream* pStream = NULL;
if (SUCCEEDED(URLOpenBlockingStream(0, "URL string", &pStream, 0, 0))) {
    // Release the stream immediately since we don't use the data.
    pStream->Release();
    return TRUE;
}
else {
    return FALSE;
}

【讨论】:

  • 非常感谢。对我帮助很大
  • URLOpenBlockingStream 有一个返回值,应该使用SUCCEEDEDFAILED 宏进行检查。
  • @IInspectable,是的,检查返回值更好。我还使代码更具可读性。
  • 错误检查很好,但是通读文档,如果 URL 指向的资源不存在,则其中没有任何内容说明pStream 将是NULL。例如,Web 服务器或 ISP 可能会将请求重定向到错误页面。一个真正有效的解决方案是here
  • 我认为添加以下内容会很好:对于SUCCEDED 宏,#include &lt;Urlmon.h&gt; 和最后一件事还需要 #include &lt;winerror.h&gt; .cpp 文件,如果你使用 header-cpp 抽象)#pragma comment(lib, "urlmon.lib")
猜你喜欢
  • 1970-01-01
  • 2011-08-11
  • 2014-04-16
  • 2011-05-16
  • 2015-11-13
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
相关资源
最近更新 更多