2016-07-27 4 views
0

Я искал различные вопросы о stackoverflow, и я получил ответ, но использовал NSMutableURLRequest, так как существует один метод - (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field;, который может быть вызван только через requestObject. Как добавить значение с помощью _sessionManager.requestSerializer? Или любая работа вокруг. Вот код, который я использую для настройки сеанса.Как установить несколько HTTP-заголовков с помощью sessionManager (AFNetworking)

- (void)configureSesionManager { 
_sessionManager = [AFHTTPSessionManager manager]; 
_sessionManager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

_sessionManager.requestSerializer = [AFJSONRequestSerializer serializer]; 
_sessionManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"]; 
_sessionManager.requestSerializer.timeoutInterval = 360; 
if ([GSCommonUtil isUserLoggedIn]) { 
    authenticationHeader = [NSString stringWithFormat:@"Bearer %@",[GSCommonUtil retriveValueFromUserDefaults:kNSUserAuthenticationToken]]; 
    [_sessionManager.requestSerializer setValue:authenticationHeader forHTTPHeaderField:@"Authorization"]; 
} 
    [_sessionManager.requestSerializer setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"]; 
    [_sessionManager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
// I have to add one more HTTPHeader for @"Accept". How could I achieve it. 
    NSLog(@"Done with Session Manager Configuration!"); 
} 

ответ

3

Заголовок Accept занимает comma separated list, так что-то, как это должно работать:

[_sessionManager.requestSerializer setValue:@"application/json, application/xml" forHTTPHeaderField:@"Accept"];

Очевидно заменить application/xml с тем, что вам нужно.