这是摘自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));
win10 无法使用内置管理员账户打开应用
设置 npm 源为淘宝镜像
git sh.exe 乱码
mybatis 获取新增数据的主键
框架 get 请求乱码
js在浏览器下的区别小结(部分)
js调试的一点小知识
git常用命令
css水平居中(一)