в iOS, как я могу получить код статуса http (404 500 200 и т.д.) для ответа с веб-сервера. Я предполагаю это в NSUrlConnectionDelegate.
Objective-C или Monotouch.NET ответ ok.
в iOS, как я могу получить код статуса http (404 500 200 и т.д.) для ответа с веб-сервера. Я предполагаю это в NSUrlConnectionDelegate.
Objective-C или Monotouch.NET ответ ok.
Да, вы можете получить код статуса в методе делегата -didRecieveResponse:
- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
int code = [httpResponse statusCode];
}
NSHTTPURLResponse* urlResponse = nil;
NSError *error = nil;
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
Асинхронный запрос также должен иметь способ получить сообщение NSHTTPURLResponse.
Вы получите код состояния следующим образом:
int statusCode = [urlResponse statusCode];
int errorCode = error.code;
В случае некоторых часто используемых кодов ошибок (например, 404) он будет помещен в ошибку, но с другим кодом (401 будет -1012).
Вот как это сделать в MonoTouch для .NET для этих пользователей С#. Это находится в NSUrlConnectionDelegate.
public override void ReceivedResponse (NSUrlConnection connection, NSUrlResponse response)
{
if (response is NSHttpUrlResponse)
{
var r = response as NSHttpUrlResponse;
Console.WriteLine (r.StatusCode);
}
}
Рассматривая fooobar.com/info/154509/..., похоже, что вы можете обрабатывать коды статуса http в методе делегата - (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)response
:
- (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse*)response
{
if ([response isKindOfClass: [NSHTTPURLResponse class]])
statusCode = [(NSHTTPURLResponse*) response statusCode];
}