关于CHttpConnection问题,请大家指点 用CInternetSession、CHttpConnection连接HTTP服务器,连接时怎么指定用哪条线路发送至HTTP服务器。因为那台机上有两条以上的线路(公网IP) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CInternetSession::SetOption,an example:#include <afxinet.h>CString GeHttptFile(const char *url){ CString szContent; char strProxyList[MAX_PATH], strUsername[64], strPassword[64]; strcpy(strProxyList, "209.3.144.105:80"); strcpy(strUsername, ""); strcpy(strPassword, ""); DWORD dwServiceType = AFX_INET_SERVICE_HTTP; CString szServer, szObject; INTERNET_PORT nPort; AfxParseURL(url, dwServiceType, szServer, szObject, nPort); CInternetSession mysession("Test"); 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;}void main(void){CString sret=GeHttptFile("http://club.pchome.net/bbs2.php?topic=40&lanmuid=2");printf("%s\n",sret);} 来者有分,怎样只传送文件改变的部分? 这个调试错误怎样解决,请帮忙! /*******************谁做过医疗化验仪器与计算机接口协议 “ASTM E1394” 的开发?现金1000元酬谢!!!*****************/ 救救我 请问什么是虚拟函数,虚拟函数的作用是什么? 第一次写网络传输方面的东西,需要注意些什么? opengl 问题 给分了!!!!88分!!!!!!!! 我能给的最高的分数,关于菜单的问题 41分相送,只要回答一个问题:那里有《windows网络编程》中文版下载? 怎样做抓取cd音轨的程序 如何实现如WORD中域的显示类似效果的编辑框? 我更晕了
#include <afxinet.h>CString GeHttptFile(const char *url)
{
CString szContent;
char strProxyList[MAX_PATH], strUsername[64], strPassword[64];
strcpy(strProxyList, "209.3.144.105:80");
strcpy(strUsername, "");
strcpy(strPassword, "");
DWORD dwServiceType = AFX_INET_SERVICE_HTTP;
CString szServer, szObject;
INTERNET_PORT nPort;
AfxParseURL(url, dwServiceType, szServer, szObject, nPort);
CInternetSession mysession("Test");
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;
}
void main(void)
{
CString sret=GeHttptFile("http://club.pchome.net/bbs2.php?topic=40&lanmuid=2");
printf("%s\n",sret);
}