这是摘自msdn中的一个利用代理下载网络文件的例子。
CString GeHttptFile(const char *url)
{
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, "proxya:8080");
strcpy(strUsername, "myusername");
strcpy(strPassword, "mypassword");
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;
}
ASSERT(m_astrProxies.GetSize()>0);
CString strProxy=m_astrProxies[m_iProxyIndex];
if(strProxy.IsEmpty())
{
INTERNET_PROXY_INFO ipi;
ipi.dwAccessType=INTERNET_OPEN_TYPE_DIRECT;
ipi.lpszProxy=NULL;
ipi.lpszProxyBypass=NULL;
UrlMkSetSessionOption(INTERNET_OPTION_PROXY,&ipi,sizeof(ipi),0);
}
else
{
INTERNET_PROXY_INFO ipi;
ipi.dwAccessType=INTERNET_OPEN_TYPE_PROXY;
ipi.lpszProxy=strProxy;
ipi.lpszProxyBypass=NULL;
UrlMkSetSessionOption(INTERNET_OPTION_PROXY,&ipi,sizeof(ipi),0);
}
SetOption(INTERNET_OPTION_PROXY_USERNAME, (LPVOID)szID, ::lstrlen(szID));
SetOption(INTERNET_OPTION_PROXY_PASSWORD, (LPVOID)szPassword, ::lstrlen(szPassword));
如何在windows Server 2008虚拟机上安装SQLServer2008数据库
小票打印机乱码问题
SQLSERVER 的联接查询写法
VMware下安装CentOS6.5
疯狂java讲义--笔记
学习Java第一篇——Java 安装及环境搭配
informix数据迁移工具使用介绍
informix 存储过程结构
输入身份证号码自动读取生日与性别(delphi)
- 最新文章
-
【转】在iOS开发中使用FMDB
【IOS开发】创建XML文件
【IOS开发】如何画1像素的线
【IOS开发】UItextfield输入电话号码,自动调整格式
【xcode插件介绍】Alcatraz ----The package manager for Xcode
在一个view类里面获取viewcontroller
To Do List
【转】有的共享软件赚了一百万美元,而为什么你没有?&&我的软件推广成功之路
很久没登录了,生活战胜了兴趣
delphi控件属性和事件
- 热门文章
-
Delphi Access Violation错误的分析
Delphi的程序单元、结构、基础知识(转)
Delphi面向对象学习随笔一:类与对象的关系(转)
Delphi面向对象学习随笔二:编写第一个类(转)
Delphi面向对象学习随笔三:overload与override(转)
Delphi的OverRide、OverLoad和Virtual方法(转)
TeeChart.v8.01在Delphi下的安装(参考加自己实践修改安装)
TeeChart 8.01 With Source在Delphi 7.0中的安装(转)
在Delphi中动态地使用SQL查询语句 Adoquery sql 参数 冒号
给12306的建议