调用 InternetOpenUrlA 后总返回一个有效的 HINTERNET,
即使文件不存在,文件不存在时返回的是错误信息,
这样的话我该如何判断文件是否存在呢?代码如下: HINTERNET hInternet;
HINTERNET hHttpSession;
HINTERNET hHttpFile;
CString strRtn;
DWORD dwRtn=0;
DWORD dwRead=10;
char szContent[1024];
char errInfo[1024]; memset(szContent,0,1024);
strRtn.Empty();
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hInternet == NULL)
return strRtn; hHttpSession = InternetConnect(hInternet, strWeb,
INTERNET_DEFAULT_HTTP_PORT, NULL, NULL,
INTERNET_SERVICE_HTTP, 0, NULL);
if (hHttpSession == NULL)
return strRtn; hHttpFile = InternetOpenUrlA(hInternet,
"http://cs-stong/helloo.upg22",
NULL, 0, INTERNET_FLAG_RELOAD, 0); BOOL bRead;
bRead = InternetReadFile(hHttpFile,szContent,1023, &dwRead);
DWORD dwError = GetLastError();
if (dwError==ERROR_INTERNET_EXTENDED_ERROR) {
DWORD dwErr;
DWORD len = sizeof(errInfo)/sizeof(errInfo[0]);
InternetGetLastResponseInfo(&dwErr, errInfo, &len);
}
InternetCloseHandle(hHttpFile);
InternetCloseHandle(hHttpSession);
InternetCloseHandle(hInternet); strRtn.Format("%s",szContent);
return strRtn;
即使文件不存在,文件不存在时返回的是错误信息,
这样的话我该如何判断文件是否存在呢?代码如下: HINTERNET hInternet;
HINTERNET hHttpSession;
HINTERNET hHttpFile;
CString strRtn;
DWORD dwRtn=0;
DWORD dwRead=10;
char szContent[1024];
char errInfo[1024]; memset(szContent,0,1024);
strRtn.Empty();
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (hInternet == NULL)
return strRtn; hHttpSession = InternetConnect(hInternet, strWeb,
INTERNET_DEFAULT_HTTP_PORT, NULL, NULL,
INTERNET_SERVICE_HTTP, 0, NULL);
if (hHttpSession == NULL)
return strRtn; hHttpFile = InternetOpenUrlA(hInternet,
"http://cs-stong/helloo.upg22",
NULL, 0, INTERNET_FLAG_RELOAD, 0); BOOL bRead;
bRead = InternetReadFile(hHttpFile,szContent,1023, &dwRead);
DWORD dwError = GetLastError();
if (dwError==ERROR_INTERNET_EXTENDED_ERROR) {
DWORD dwErr;
DWORD len = sizeof(errInfo)/sizeof(errInfo[0]);
InternetGetLastResponseInfo(&dwErr, errInfo, &len);
}
InternetCloseHandle(hHttpFile);
InternetCloseHandle(hHttpSession);
InternetCloseHandle(hInternet); strRtn.Format("%s",szContent);
return strRtn;
解决方案 »
- 拦截http数据包后,如何编程显示该包对应的html页面
- 请高手解决!!!!!!!!!!!一个标准的问题
- 线程同步的问题
- 求救:那里能找 到LH-61SXT主板的驱动程序?驱动之家里好象也没这型号的。
- 如何实现多行多列的列表输入控件?急急
- 小问题:如何设置画线的颜色??
- VC与Matlab通信问题?编译调试都没有问题,但运行时内存报错。
- 谁知道nt.h这个文件在哪啊?
- 如何将一个正方形图片裁剪成圆形呢?
- !!!!!!! FMD !!!!!,你说的方法好象不行!我早试过了!
- 使用gethostname这个函数,除了引入winsock.h外还要其它的吗?
- 又积累了一点分,再问一个小问题:“设置字体”
DWORD dwSize, dwStatus;
char * lpBuf; HttpQueryInfo (hUrlFile, HTTP_QUERY_STATUS_CODE , NULL, &dwSize,NULL);
lpBuf = new CHAR [dwSize];
if (!HttpQueryInfo (hUrlFile, HTTP_QUERY_STATUS_CODE , (LPVOID) lpBuf, &dwSize, NULL))
{
GetLastError();
//查询状态错误./
}
dwStatus = (DWORD)atol(lpBuf);
if( dwStatus == HTTP_STATUS_NOT_FOUND )
{
//文件不存在
}