PDA

View Full Version : [C#] Controllare se una pagina web esiste


Napalm
31-08-2009, 17:38
Ho cercato un pò con google ed ho trovato questo esempio:

http://schleichermann.wordpress.com/2009/05/13/c-check-if-web-page-is-up-http-status-code/

il problema è che con qualunque url inserisco, anche finto, il testResponse.StatusCode mi dà sempre OK invece se vado via brower mi dice pagina web non disponibile.... come mai?
Grazie

Napalm
01-09-2009, 08:57
Non riesco a capire come mai le writeline danno lo stesso risultato:
WebRequest request = WebRequest.Create("http://www.google.it");
string desc = ((HttpWebResponse)request.GetResponse()).StatusDescription;

Console.Out.WriteLine(desc);

request = WebRequest.Create("http://www.dfgsdfgsdfgsdfgsdgsdf.it");
desc = ((HttpWebResponse)request.GetResponse()).StatusDescription;

Console.Out.WriteLine(desc);

anche se il 2° link non esiste.

astorcas
01-09-2009, 09:27
scusa ma nell'esempio che hai citato c'è questo test


if (testResponse.StatusCode != HttpStatusCode.OK)
.....


in entrambi i casi il test fallisce?

Napalm
01-09-2009, 09:35
scusa ma nell'esempio che hai citato c'è questo test


if (testResponse.StatusCode != HttpStatusCode.OK)
.....


in entrambi i casi il test fallisce?

No, in entrambi i casi non fallisce ed ho anche capito il perchè.
Se un url non esiste mi reindirizza direttamente ad una pagina di search di Alice... ecco perchè trovava sempre qualcosa....:( quindi è un problema della connessione.... che cavolo!!!

astorcas
01-09-2009, 09:36
No, in entrambi i casi non fallisce ed ho anche capito il perchè.
Se un url non esiste mi reindirizza direttamente ad una pagina di search di Alice... ecco perchè trovava sempre qualcosa....:( quindi è un problema della connessione.... che cavolo!!!

era la seconda cosa che ti avrei scritto :), il redirect :fagiano:

Napalm
01-09-2009, 09:43
era la seconda cosa che ti avrei scritto :), il redirect :fagiano:

non ci avrei mai pensato, poi ho provato sul brower ed ecco svelato l'arcano.

Ho risolto creando una pagina php con un echo "OK", io richiedo il download della pagina via C# e dovrebbe ritornarmi un array di 2 byte; se è diverso da 2 c'è qualche errore.