如何在 VC++ 中检查链接是不是存在?

Posted

技术标签:

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

我有一个链接。我已经通过正则表达式检查了该链接是否是有效的 URL。现在,我想检查该链接是否是有效的 http 链接。即它不应该是一个不存在的链接。 VC++ 6.0 (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 有一个返回值,应该使用SUCCEEDED 或FAILED 宏进行检查。 @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")

以上是关于如何在 VC++ 中检查链接是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章

VC++如何检测文件是不是存在

如何在vc++中判断计算机是不是安装c运行时库

如何通过 PHP 检查 URL 是不是存在?

如何检查软链接的最终目标文件是不是确实存在? [关闭]

如何检查给定网址中是不是存在图像?

在 VC++ Float 数据类型值中,如何检查字符串或特殊字符是不是没有混合