RFC 2616 especificando HTTP diz - na seção 6.1.1 - que parte da Linha de Status é um Código de Status numérico de 3 dígitos E uma "Frase de Razão" textual .
Estou construindo um aplicativo para iPhone, que está usando NSURLConnection para acessar dados sobre HTTP. Posso obter o código de status HTTP sem problemas, mas como posso acessar a "Frase do motivo"?
Aqui está minha conexão: didReceiveResponse: método
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
httpStatusCode = [httpResponse statusCode];
// Reason Phrase ??
}
Para ser específico, NÃO quero dizer a "explicação do que é um código xxx significa "texto. Posso pesquisar isso no RFC e esses são estáticos. Refiro-me ao texto que o servidor produziu na linha de status. Um exemplo de tal linha de status seria:
HTTP/1.1 412 ClientAppVersion: 0.10 < 0.11
e a Frase de Razão seria "ClientAppVersion: 0.10 <0.11" aqui.
Este exemplo também dá uma dica do que estou tentando fazer. Estou construindo uma API semelhante a REST e, como tal, devo usar os códigos de status HTTP para indicar erros. Mas os códigos de status HTTP foram inventados para HTTP e não para meu aplicativo, então tento colocar informações extras na frase de razão.