Sto cercando di determinare se una qualifica esiste http://www.accreditedqualifications.org.uk nella forma:C# rilevano pagina di reindirizzamento
http://www.accreditedqualifications.org.uk/qualification/50084811.seo.aspx
50084811 essere una qualifica scopo da entrato da parte dell'utente finale.
Se entrano in uno non valido, ad es.
http://www.accreditedqualifications.org.uk/qualification/50084911.seo.aspx
Essi vengono reindirizzati a una pagina di errore (con intestazioni HTTP non corrette, per quanto posso vedere). C'è un modo per rilevare il reindirizzamento in C#. Spero di essere in grado di rilevare il reindirizzamento nelle intestazioni http (pensando che emetterà 2) o simili in opposizione al dover scaricare l'intera pagina. Questo potrebbe accadere molto, quindi vorrei ridurre al minimo il traffico.
Modifica
usato questo per avere uno sguardo le intestazioni si presenta come due sono rilasciati per una pagina non valida:
Abbiamo trovato questo http://stackoverflow.com/questions/924679/c-how-can-i-check-if-a-url-exists-is-valid Penso che sia lungo le linee corrette, ma dal momento che il sito non emette un 404 o simili non funziona. Continuerò a sperimentare. – PeteT
@ petebob796: l'utilizzo di 'WebClient' potrebbe non fornire un controllo sufficiente. In particolare, non ti permette di disattivare il reindirizzamento automatico (per quanto posso vedere). Utilizzare HttpWebRequest e osservare il codice di risposta. 301 e 302 sono i normali codici di risposta di reindirizzamento. –
Grazie ordinati ora utilizzando HttpWebRequest e HttpWebResponse insieme a request.AllowAutoRedirect = false; e request.Method = "HEAD" ;. Per chiunque stia leggendo, per un secondo sono stato catturato dallo StatusCode, restituisce "OK", "NOT FOUND" ... ma è un enum e può essere lanciato sull'errore vero 301, 302 ... – PeteT