【发布时间】:2010-01-05 05:53:34
【问题描述】:
我有一个链接。我已经通过正则表达式检查了该链接是否是有效的 URL。现在,我想检查该链接是否是有效的 http 链接。即它不应该是一个不存在的链接。 VC++ 6.0 (MFC) 有办法检查吗?
【问题讨论】:
-
你的意思是它是否真的指定了一个正在运行的服务器并检索资源?
标签: c++ visual-c++ mfc
我有一个链接。我已经通过正则表达式检查了该链接是否是有效的 URL。现在,我想检查该链接是否是有效的 http 链接。即它不应该是一个不存在的链接。 VC++ 6.0 (MFC) 有办法检查吗?
【问题讨论】:
标签: c++ visual-c++ mfc
一种选择是尝试使用 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;
}
【讨论】:
pStream 将是NULL。例如,Web 服务器或 ISP 可能会将请求重定向到错误页面。一个真正有效的解决方案是here。
SUCCEDED 宏,#include <Urlmon.h> 和最后一件事还需要 #include <winerror.h> .cpp 文件,如果你使用 header-cpp 抽象)#pragma comment(lib, "urlmon.lib")