2009-05-28 8 views
0

Ich muss http 302 Weiterleitungen von meinem Code unterscheiden können, die. Net Remoting verwenden.Wie gehe ich mit http 302 Redirect von. Net Remoting?

Um mit der entsprechenden URL zu verbinden, versuchen wir sie in Reihenfolge, bis einer funktioniert. In den meisten Umgebungen schlägt die erste URL korrekt mit einer System.Net.WebException mit dem Status WebExceptionStatus.NameResolutionFailure fehl. Für Kunden, die OpenDNS verwenden, kommt dies jedoch als HTTP 302-Antwort zurück, die auf ihre Guide-Seite umleitet. Da ich .net Remoting verwende, wird die Umleitung ignoriert, und der Fehler, den ich erhalte, ist eine System.Runtime.Serialization.SerializationException, die nur unterscheidbar ist durch die Meldung "End of Stream, die vor der Analyse gefunden wurde."

Hier ist die opendns http Antwort: HTTP/1.0 302 Gefunden Ort: http://guide.opendns.com/?url=demonstration.totallyinvalidexceptonmynetwork.com%2Fi%2Fdo%2Fnot%2Fexist.html Content-type: text/html Content-Length: 0 Anschluss: schließen Datum: Do, 28. Mai 2009 20.46 Uhr: 26 GMT Server: OpenDNS Führer

Antwort

0

ich gehe davon aus, dass die Anfrage senden Sie verwenden das HttpWebRequest Objekt. Dann können Sie die Antwort im HttpWebResponse Objekt wie unten erhalten. Dann können Sie die response.StatusCode Eigenschaft überprüfen. Wenn es 302 ist, dann führe deine Logik aus.

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
if (response.StatusCode = HttpStatusCode.Found) 
{ 
    //your code here 
} 

Update: Wenn Sie System.Net.Webclient dann können Sie die Sie kann ihre Verwendung ResponseHeaders Eigenschaft verwenden. Here ist, wie Sie es verwenden können.

+0

.net Remoting nicht die HttpWebRequest oder WebClient oder verwandte Klassen. Der aufrufende Code sieht ein Proxy-Objekt, das aussieht wie der Typ, der auf dem Server aufgerufen wird. (Ja, ich weiß, das war vor 2 Jahren) – sphereinabox