winnt验证代理服务器,是否可用

//win nt验证
#include <wininet.h>
#include <afxinet.h>
CString   GeHttptFile(const   char   *url,char* cip) 
{ 
	CString   szContent; 
	char   strProxyList[MAX_PATH],   strUsername[64],   strPassword[64]; 
	//in   this   case   "proxya "   is   the   proxy   server   name,   "8080 "   is   its   port 
	strcpy(strProxyList,   cip); 
	strcpy(strUsername,   ""); 
	strcpy(strPassword,   ""); 
	DWORD   dwServiceType   =   AFX_INET_SERVICE_HTTP; 
	CString   szServer,   szObject; 
	INTERNET_PORT   nPort; 
	AfxParseURL(url,   dwServiceType,   szServer,   szObject,   nPort); 
	CInternetSession   mysession; 
	CHttpConnection*   pConnection; 
	CHttpFile*   pHttpFile; 
	pConnection   =   mysession.GetHttpConnection(szServer, 
		INTERNET_FLAG_KEEP_CONNECTION, 
		INTERNET_INVALID_PORT_NUMBER, 
		NULL,   NULL); 
	pHttpFile   =   pConnection-> OpenRequest( "GET",   szObject, 
		NULL,   0,   NULL,   NULL, 
		INTERNET_FLAG_KEEP_CONNECTION); 
	//here   for   proxy 
	INTERNET_PROXY_INFO   proxyinfo; 
	proxyinfo.dwAccessType   =   INTERNET_OPEN_TYPE_PROXY; 
	proxyinfo.lpszProxy   =   strProxyList; 
	proxyinfo.lpszProxyBypass   =   NULL; 
	mysession.SetOption(INTERNET_OPTION_PROXY,   (LPVOID)&proxyinfo,   sizeof(INTERNET_PROXY_INFO)); 
	pHttpFile-> SetOption(INTERNET_OPTION_PROXY_USERNAME,   strUsername,   strlen(strUsername)+1); 
	pHttpFile-> SetOption(INTERNET_OPTION_PROXY_PASSWORD,   strPassword,   strlen(strPassword)+1); 
	
	pHttpFile-> SendRequest(NULL); 
	DWORD   nFileSize   =   pHttpFile-> GetLength(); 
	LPSTR   rbuf   =   szContent.GetBuffer(nFileSize); 
	UINT   uBytesRead   =   pHttpFile-> Read(rbuf,   nFileSize); 
	szContent.ReleaseBuffer(); 
	pHttpFile-> Close(); 
	delete   pHttpFile; 
	pConnection-> Close(); 
	delete   pConnection; 
	mysession.Close(); 
	return   szContent; 
}


评论