При запросе моего веб-сервиса с i.e Postman Rest Client с If-Modified-так как я получаю правильный ответ с 304 и без данных в контенте.AFNetworking и 304 NotModified возвращает ошибку
Однако, когда я делаю это из моего приложения, я получаю следующее сообщение об ошибке:
Ошибка: Не удалось выполнить запрос: не изменен (304), получили 256
Это, как я инициализацией запрос :
NSMutableURLRequest *request = [requestSerializer requestWithMethod:@"GET" URLString:[[NSURL URLWithString:@"myUrl" relativeToURL:[baseURL absoluteString] parameters:nil];
self = [self initWithRequest:request];
[request setValue:modifyDate forHTTPHeaderField:@"If-Modified-Since"];
Это моя работа:
[self setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id JSON)
{
DLog(@"Response: %@", [operation responseString]);
int statusCode = operation.response.statusCode;
if(statusCode == 304) //NotModified
{
DLog(@"This is where i want to go");
}
success();
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
DLog(@"ERROR RESPONSE: %@", [operation responseString]);
DLog(@"This is where I get");
}];
responseString в блок ошибок является emtpy.
Это то, что дает ошибку, когда я печатаю его:
Printing description of error:
Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: not modified (304), got 256" UserInfo=0x8a7dd10 {NSErrorFailingURLKey=http://myApiUrl, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x8acc5e0> { URL: http://10.225.80.63/api/getAllRegionsAndCancertypes } { status code: 304, headers {
"Cache-Control" = "no-cache";
Date = "Thu, 20 Feb 2014 10:23:10 GMT";
Expires = "-1";
Pragma = "no-cache";
Server = "Microsoft-IIS/7.5";
"X-AspNet-Version" = "4.0.30319";
"X-Powered-By" = "ASP.NET";
} }, NSLocalizedDescription=Request failed: not modified (304), got 256}
Что мне не хватает? Статус кажется правильным даже в блоке ошибок, но почему я вообще туда попал?
Спасибо!
Код 304 уже используется AFNetworking и означает (данные не изменены), тогда вы можете посмотреть в своем кеше, чтобы получить данные. Но это не может быть успешным с кодом 304. –
. Должна быть ошибка, когда ответ равен 304? – ullstrm
Будет ли только код состояния 200 перейти к блоку успеха? – ullstrm