如何在 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 <Urlmon.h>
和最后一件事还需要 #include <winerror.h>
.cpp
文件,如果你使用 header-cpp 抽象)#pragma comment(lib, "urlmon.lib")
以上是关于如何在 VC++ 中检查链接是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章