Я использую AFNetworking в своем проекте в качестве сетевого уровня. Для изображений у меня были некоторые проблемы, связанные с кэшированием, и я обновил фреймворк до версии 3.0.
В процессе обновления у меня возникают проблемы с запросами на получение медиаконтента (изображений и видео).
Это мой класс:
+ (void)requestWithMethod:(NSString*)methodTypeValue path:(NSString*)pathValue parameters:(NSDictionary *)params token:(NSString*)token debug:(BOOL)debug completionHandler:(void (^)(id result, NSError *error))block {
if(debug){
NSLog(@"Method Type = %@ \n",methodTypeValue);
NSLog(@"Link = %@ \n",pathValue);
NSLog(@"Token = %@", token);
}
NSString *linkRequest = [NSString stringWithFormat:@"%@%@",GatewayRoot,pathValue];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:methodTypeValue URLString:linkRequest parameters:nil error:nil];
[req setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
if (token) {
[req setValue:token forHTTPHeaderField:@"AccessToken"];
}
[[manager dataTaskWithRequest:req completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
if (debug) {
NSLog(@"response:\n %@ \n",responseObject);
}
block(responseObject,nil);
} else {
NSLog(@"Error: %@, %@, %@", error, response, responseObject);
block(nil, error);
}
}] resume];
}
Я сделал тест, и все в порядке с обычными запросами. Мне нужно получить некоторые изображения и видео с сервера, и я получаю эту ошибку:
NSLocalizedDescription=Ошибка запроса: неприемлемый тип контента: изображение/png NSLocalizedDescription=Ошибка запроса: неприемлемый тип контента: видео/mp4
Я попытался установить типы контента следующим образом:
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"image/jpeg",@"video/mpeg",...nil];
manager.responseSerializer.acceptableContentTypes =[manager.responseSerializer.acceptableContentTypes setByAddingObject:@"image/jpeg",@"video/mpeg",...nil];
Пожалуйста, не могли бы вы помочь мне установить допустимые типы контента?
У меня есть другая проблема, связанная с кэшированием изображений: в старой версии я вошел в систему и получил изображение профиля пользователя, а после того, как я вышел из системы и снова вошел в систему с другими учетными данными, я получил то же изображение для профиля пользователя (я обнаружил, что это проблема, связанная с Кэширование изображений AFNetworking).
Можете ли вы помочь мне с потоком запросов на очистку кеша?
Большое спасибо за вашу помощь!
AFJSONRequestSerializer
, я не думаю, что вам нужно устанавливатьContent-Type
самостоятельно. Я считаю, что AFNetworking сделает это за вас. - person Rob   schedule 16.04.2016