Estou tentando obter o número do código de status HTTP do HttpWebResponse
objeto retornado de a HttpWebRequest
. Eu esperava obter os números reais (200, 301,302, 404 etc.) em vez da descrição do texto. ("Ok", "MovedPermanently" etc.) O número está oculto em uma propriedade em algum lugar do objeto de resposta? Alguma idéia que não seja a criação de uma grande função de switch? Obrigado.
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
fonte
fonte
Respostas:
HttpStatusCode (o tipo de
response.StatusCode
) é uma enumeração em que os valores dos membros correspondem aos códigos de status HTTP, por exemplofonte
bool success = ((int)response.StatusCode) >= 200 && ((int)response.StatusCode) < 300;
Você precisa ter cuidado, as respostas do servidor no intervalo de 4xx e 5xx geram uma WebException. Você precisa pegá-lo e obter o código de status de um objeto WebException:
fonte
De acordo com 'dtb', você precisa usar HttpStatusCode, mas após 'zeldi', você precisa ter cuidado extra com respostas de código> = 400.
Isso tem funcionado para mim:
fonte
Apenas coagir o
StatusCode
paraint
.fonte
fonte