Ich versuche, die HTTP-Statuscode-Nummer von dem HttpWebResponse
Objekt abzurufen, das von a zurückgegeben wurde HttpWebRequest
. Ich hatte gehofft, die tatsächlichen Zahlen (200, 301, 302, 404 usw.) anstelle der Textbeschreibung zu erhalten. ("Ok", "MovedPermanently" usw.) Ist die Nummer in einer Eigenschaft irgendwo im Antwortobjekt vergraben? Irgendwelche anderen Ideen als das Erstellen einer großen Schalterfunktion? Vielen Dank.
HttpWebRequest webRequest = (HttpWebRequest)WebRequest
.Create("http://www.gooogle.com/");
webRequest.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
//Returns "MovedPermanently", not 301 which is what I want.
Console.Write(response.StatusCode.ToString());
c#
.net
http
httpwebrequest
James Lawruk
quelle
quelle
Antworten:
HttpStatusCode (der Typ von
response.StatusCode
) ist eine Aufzählung, bei der die Werte der Mitglieder mit den HTTP-Statuscodes übereinstimmen, zquelle
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Sie müssen vorsichtig sein, Serverantworten im Bereich von 4xx bis 5xx lösen eine WebException aus. Sie müssen es abfangen und dann den Statuscode von einem WebException-Objekt abrufen:
quelle
Gemäß 'dtb' müssen Sie HttpStatusCode verwenden, aber nach 'zeldi' müssen Sie bei Code-Antworten> = 400 besonders vorsichtig sein.
Das hat bei mir funktioniert:
quelle
Zwinge einfach das
StatusCode
zuint
.quelle
quelle