已知一个PHP网页的地址,如何将其页面显示的内容读出来?并不是要显示出来,而是将读出来的数据放到数组或者边量里
大家给段代码吧……谢谢大家
大家给段代码吧……谢谢大家
解决方案 »
- sendMessage数据传输错误.请各位大侠帮忙!谢谢!
- 全局函数中((CComboBox*)g_hWndCombox)->InsertString问题
- 基础问题~~大家看看
- 内存回收问题
- Visual Assist有没有代码的自动缩进功能?
- 谁有C++的读写XML的类呀,能不能给一个好用的![email protected]
- 文件保存的问题
- 分割视图怎么用?
- 各位虾哥虾妹:偶是新手,想请教什么地方有关于程序设计的练习题目之类的网站,越多越好,偶想多练习一下,可惜找不到题目,如果有买的书也行,谁给推荐一本!!
- 关于 WSASocket, 一定给分!!!
- 如何获取剪贴板上的信息?
- 没有知道得吗?
一个完事的函数:
BOOL CDownLoadDlg::GetFromWeb(LPSTR pURL, LPSTR SaveAsFilePath)
{
CInternetSession session; //会话期对象)CHttpConnection* pServer = NULL; // 指向服务器地址(URL)CHttpFile * pHttpFile = NULL;//HTTP文件指针CString strServerName; //服务器名CString strObject; //查询对象名(http文件)INTERNET_PORT nPort; //端口DWORD dwServiceType; //服务类型DWORD dwHttpRequestFlags = //请求标志//INTERNET_FLAG_EXISTING_CONNECT;INTERNET_FLAG_NO_AUTO_REDIRECT;const TCHAR szHeaders[]=_T("Accept: text/*\r\nUser-Agent:HttpClient\r\n");BOOL OK=AfxParseURL( //词法分析pURL, //被分析URL串dwServiceType, //服务类型,ftp,http等strServerName, //服务器名strObject, //URL中被查询对象nPort ); //URL指定的端口,可能为空OK=OK && //本例只考虑http协议(dwServiceType ==INTERNET_SERVICE_HTTP);if (!OK) { AfxMessageBox("URL出错"); //报错return false; }pServer = session.GetHttpConnection(strServerName, nPort); //获得服务器名pHttpFile = pServer-> OpenRequest( CHttpConnection::HTTP_VERB_GET,strObject, NULL, 1, NULL, NULL,dwHttpRequestFlags);//向服务器发送请求,建立http连接,//建立本机上的http文件指针pHttpFile->AddRequestHeaders(szHeaders);pHttpFile->SendRequest(); //发送请求CStdioFile f; //输出文件对象if( !f.Open( //打开输出文件SaveAsFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary ) ) { MessageBox("Unable to open file"); return false;}//下面将检索结果保存到文件上TCHAR szBuf[1024]; //缓存
int length=0;
long a=pHttpFile->GetLength();
while (length=pHttpFile->Read(szBuf, 1023))f.Write(szBuf,length);f.Close(); //善后工作pHttpFile ->Close();pServer ->Close();if (pHttpFile != NULL) delete pHttpFile;if (pServer != NULL) delete pServer;session.Close();return true;
}
{
CInternetSession m_Session("DigitalTitan");
CHttpFile* pFile=NULL;
CException* e; TCHAR szTempPath[MAX_PATH],szTempFile[MAX_PATH];
DWORD dwResult=::GetTempPath(MAX_PATH,szTempPath);
CString strURLPath;
GetTempFileName(szTempPath,_T("DigitalTitan_"),0,szTempFile);
strURLPath=szTempFile;
TRY
{
pFile=(CHttpFile*)m_Session.OpenURL(strURL);
}
CATCH_ALL(e)
{
pFile=NULL;
AfxMessageBox("URL地址不合法",MB_ICONINFORMATION);
return "";
}
END_CATCH_ALL if(pFile)
{
DWORD dwStatus;
DWORD dwBufLen=sizeof(dwStatus);
BOOL bSuccess=pFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,&dwStatus,&dwBufLen);
if(bSuccess&&dwStatus>=200&&dwStatus<300)
{
CStdioFile m_File;
if(m_File.Open(strURLPath,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary))
{
BYTE pBuf[1024];
DWORD dwRead;
do
{
dwRead=pFile->Read(pBuf,1024);
m_File.Write(pBuf,dwRead);
}
while(dwRead>0);
m_File.Close();
}
}
pFile->Close();
delete pFile;
}
else
{
m_Session.Close();
}
return strURLPath;
}