我用CInternetSession,CHttpConnection,CHttpFile类实现通过http代理访问internet,但是总是第一次失败,后来都成功,我想可能我代码有写的不对的地方,请指点一下,谢谢!
代码如下,有不明的地方,请指出:
//设置代理  
//参数分别为:代理服务器地址,端口号,用户名,密码
//用到的变量说明:
//sess为CInternetSession变量
//pConnect为CHttpConnection变量
//pFile 为CHttpFile变量
int TMTNHTTPProtocol::SetProxy(char* proxyAddr, char* proxyPort, char* proxyUser, char* proxyPassword)
{
char tmp[1024];
INTERNET_PROXY_INFO proxyinfo; try
{
memset(tmp, 0, 1024);
proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
strcat(tmp , proxyAddr);
strcat(tmp , ":");
strcat(tmp , proxyPort);
proxyinfo.lpszProxy = tmp;
proxyinfo.lpszProxyBypass = NULL; if (! sess.SetOption(INTERNET_OPTION_PROXY, (LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO)))
{
return 0;
}
pConnect = sess.GetHttpConnection("mtn.eucp.b2m.cn", INTERNET_FLAG_NO_AUTO_REDIRECT, 80);
pFile = pConnect->OpenRequest(CHttpConnection::HTTP_VERB_POST, pUrl); if (!pFile->SetOption(INTERNET_OPTION_PROXY_USERNAME, proxyUser, strlen(proxyUser) + 1))
{
return 0;
} if (!pFile->SetOption(INTERNET_OPTION_PROXY_PASSWORD, proxyPassword, strlen(proxyPassword) + 1))
{
return 0;
} return 1;
}
catch(...)
{
return 0;
}}