Voilà encore une autre méthode en utilisant les sockets au lieu du controle activeX WebBrowser.
J'ai pas mis les #include ... si quelqu'un en a besoin, je les poste.
LPCTSTR pszURL;
CSession session(_T("Nom de la session" ), dwAccessType);
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString strServerName, strObject;
INTERNET_PORT nPort;
DWORD dwServiceType;
DWORD dwRet;
if (!AfxParseURL(pszURL, dwServiceType, strServerName, strObject, nPort) ||
(dwServiceType != INTERNET_SERVICE_HTTP))
{
// Parsing incorrect
}
pServer = session.GetHttpConnection(strServerName, nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,
strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags);
pFile->AddRequestHeaders(szHeaders);
pFile->SendRequest();
// Transfert ok ?
pFile->QueryInfoStatusCode(dwRet);
if (dwRet != 200)
{
// Erreur
}
// Transfère le fichier lu dans un CString
CString m_strHtml;
CString CR = "\r\n";
CString strbuffer = "";
while (pFile->ReadString(strbuffer))
m_strHtml = m_strHtml + strbuffer + CR;
pServer->Close();
pFile->Close();
session.Close();
__________________
Oups...oublié
Définir une classe :
CSession::CSession(LPCTSTR pszAppName, int nMethod)
: CInternetSession(pszAppName, 1, nMethod)
{
}
et les variables ci-dessous :
DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS;
DWORD dwHttpRequestFlags = INTERNET_FLAG_EXISTING_CONNECT |
INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_RELOAD;
TCHAR szHeaders[] = "";
[edit]--Message édité par Flying--[/edit]