Windows CE 下判断 URL 地址是否有效

直接上代码了。


/*
有效网址:http://tyq3.huaxiazi.com/mp3/全人类最冷的27个笑话/lxh025.wma 
无效网址:http://tyq3.huaxiazi.com/mp3/100001/奇幻鬼故事/qhggs00802.mp3 
*/
#include "Wininet.h"
#pragma comment (lib, "wininet.lib") 
#define BUFFER_SIZE	20
BOOL CGetIPFromURLDlg::CheckUrlFileExist(TCHAR *ptcFileAddress)
{
	HINTERNET hInternet = NULL;
	TCHAR tcRet[BUFFER_SIZE + 1];
	DWORD dwBufLength = BUFFER_SIZE;
	DWORD dwIndex = 0;

	ZeroMemory(tcRet,sizeof(TCHAR) * (BUFFER_SIZE + 1));

	ghInstance = InternetOpen(L"InetURL:/1.0", 
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,
		NULL,
		0/*INTERNET_FLAG_ASYNC*/);
	if(NULL == ghInstance)
	{
		RETAILMSG(1,(L"Call InternetOpen failed: %d\r\n",GetLastError()));
		return FALSE;
	}
	hInternet = InternetOpenUrl(ghInstance,ptcFileAddress,NULL,0,INTERNET_FLAG_RELOAD,0);
	if(NULL == hInternet)
	{
		RETAILMSG(1,(L"Call InternetOpenUrl failed: %d\r\n",GetLastError()));
		return FALSE;
	}
	if(HttpQueryInfo(hInternet,HTTP_QUERY_STATUS_CODE,tcRet,&dwBufLength,&dwIndex))
	{
		if(0 != _wcsicmp(tcRet,L"200") && 0 != _wcsicmp(tcRet,L"302"))
		{
			RETAILMSG(1,(L"Invalid www address: %s!\r\n",tcRet));
			return FALSE;
		}
	}
	else
	{
		RETAILMSG(1,(L"Call HttpQueryInfo failed: %d\r\n",GetLastError()));
		return FALSE;
	}

	RETAILMSG(1,(L"Valid www address: %s!\r\n",tcRet));
	return TRUE;
}


你可能感兴趣的:(Windows CE 下判断 URL 地址是否有效)