C # Seitenumleitung erkennen

8

Ich versuche herauszufinden, ob eine Qualifikation auf Ссылка existiert in der Form:

Ссылка

50084811 ist ein Qualifikationsziel, das vom Endbenutzer eingegeben wurde.

Wenn sie eine ungültige eingeben, z. B.

Ссылка

Sie werden auf eine Fehlerseite umgeleitet (mit falschen HTTP-Headern, soweit ich das sehen kann). Gibt es eine Möglichkeit, die Umleitung in C # zu erkennen? Ich hoffe, in der Lage zu sein, die Umleitung in http-Headern zu erkennen (denke, dass es 2 ausgibt) oder ähnlich, um die gesamte Seite herunterladen zu müssen. Dies könnte viel passieren, also möchte ich den Verkehr minimieren.

Bearbeiten

Dies wurde verwendet, um einen Blick auf die Header zu werfen, die so aussehen, als würden zwei für eine ungültige Seite ausgegeben:

Ссылка

    
PeteT 29.03.2010, 14:58
quelle

3 Antworten

13

Der einfachste Weg ist wahrscheinlich das Abrufen des Inhalts mit einer HEAD-Anfrage (setzen Sie Method zu" HEAD ") in HttpWebRequest mit AllowAutoRedirect auf false. Ich kann mich nicht daran erinnern, ob das eine Ausnahme verursacht oder nicht, aber so oder so sollte es einfach zu handhaben sein.

    
Jon Skeet 29.03.2010, 15:02
quelle
11

Es gibt verschiedene Codes, die zurückgegeben werden können. Sie können die verschiedenen Codes a la überprüfen:

%Vor%

Sie können alle Möglichkeiten auf Ссылка

einsehen

Alternativ könnte es ausreichen, zu überprüfen, ob der Standort in der Antwort anders ist.

%Vor%     
Handcraftsman 30.03.2010 06:21
quelle
0

Das können Sie nur mit einem Webclient von Ihrem Server tun. Wenn Sie den Link zu Ihrem Kunden geben, werden Sie hinterher nicht Teil der Kommunikation zwischen ihm und dem akkreditierten Qualifikationsweb-Server sein, und deshalb werden Sie nicht in der Lage sein, die Information zu erhalten, dass der Link zu einem Fehler umgeleitet wurde. p>

Soweit ich Ihr Projekt verstehen kann, würde ich einen Aufruf mit Webclient (oder was auch immer) von meinem Server machen, um sicherzugehen, dass die Qualifikation existiert und das Ergebnis mit einer Pufferungszeit in der Datenbank speichern. Es würde erlauben, nicht zu viele Anrufe zu tätigen und dennoch zuverlässige Informationen zu erhalten.

    
Arthis 29.03.2010 15:08
quelle

Tags und Links