|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
[MFC] Scaricare pagina web
Devo portare in locale una pagina web per poi analizzarla. Ho creato un programma in C++ che la scarica in questo modo:
Codice:
CInternetSession* m_pInetSession;
CStdioFile* source; // file sorgente
LPTSTR instream; // stream del file sorgente
char buf[2048];
CStdioFile outfile; //file di output
m_pInetSession = new CInternetSession("AppUnknown", 1, INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0 );
source = m_pInetSession->OpenURL(url,1, INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_KEEP_CONNECTION,NULL,0);
if( !outfile.Open(sourceFile, CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ) {
exit( 1 );
}
while (instream != NULL) {
instream = source->ReadString(buf, 255);
outfile.WriteString(buf);
}
m_pInetSession->Close();
outfile.Close()
Come posso fare? Thanx
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB Ultima modifica di bizzu : 04-05-2004 alle 13:24. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' più difificle di quanto sembri...alcuni server forniscono invece dell'errore 404 uno stato 200 (quindi normale) ed emettono una pagina personalizzata di errore... Questa situazione non la puoi correggere...
Modifica il codice così: Codice:
CHttpFile* source; // file sorgente
LPTSTR instream; // stream del file sorgente
char buf[2048];
CStdioFile outfile; //file di output
m_pInetSession = new CInternetSession("AppUnknown", 1, INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0 );
source = (CHttpFile *)m_pInetSession->OpenURL(url,1, INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_KEEP_CONNECTION,NULL,0);
if(f)
{
CString a;
f->QueryInfo(HTTP_QUERY_STATUS_CODE, a);
if(atoi((LPCTSTR)a) != 200)
{
f->QueryInfo(HTTP_QUERY_STATUS_TEXT, a);
f->Close();
return ....
}
}
if( !outfile.Open(sourceFile, CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ) {
exit( 1 );
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
Perfetto, grazie 1000!
Mi sfugge solo una cosa: f come lo devo dichiarare?
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scusa...sostituisci source a f
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
Ah ok! Grazie ancora
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Nov 2006
Messaggi: 6
|
Dubbio...
Resuscito un momento questa discussione perchè l'ho trovata utile per i mie scopi e vorrei chiedere: il codice postato funziona ma non con indirizzi contenenti un punto interrogativo... come potrei fare per scaricare una pagina web, ad esempio, come questa?
Codice:
http://www.giochinumerici.info/portal/page/portal/sitoinformativowfl/vincite/concorsidioggi/concorso?anno=2009&concorso=491 |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Nov 2006
Messaggi: 6
|
Nessuno sa come si fa?
|
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Nov 2006
Messaggi: 6
|
Up
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:23.



















