Кто-нибудь знает, если/где коды состояния HTTP, как указано здесь, определены в SDK iOS? Или мне нужно вручную переопределить их в файле констант?
Являются ли коды статуса HTTP в любом месте SDK iOS?
Ответ 1
Я сделал
grep -r '404' *
в
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/
и подошли с пустыми руками, поэтому ответ почти наверняка "нет".
Ответ 2
Ну, они определены в том смысле, что
[NSHTTPURLResponse localizedStringForStatusCode:(NSInteger)statusCode]
может возвращать строку для данного кода состояния. Это то, что вы ищете?
Ответ 3
Существует полная библиотека Obj-C со всеми кодами, определенными на сегодняшний день: https://github.com/rafiki270/HTTP-Status-Codes-for-Objective-C
Ответ 4
Я также не смог найти файл заголовка, который, как я ожидал, должен существовать, поэтому мне пришлось написать один из моих собственных.
С HTTPStatusCodes.h, содержащимся в проекте nv-ios-http-status в GitHub, отправка по кодам состояния HTTP может быть записана следующим образом.
#import "HTTPStatusCodes.h"
......
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
switch ([res statusCode])
{
// 200 OK
case kHTTPStatusCodeOK:
......;
}
......
}
Надеюсь, HTTPStatusCodes.h может сэкономить ваше время и других разработчиков.
Ответ 5
Код состояния http может быть определен ответчиком сервера. Когда есть соединение, вы можете использовать NSURLResponse для чтения statusCode. Эти ответы 4 ** могут быть определены внутри вашего сервера.
Ответ 6
Существует также Swift для повторного использования: