2016-07-27 1 views
0

J'ai cherché parmi diverses questions de stackoverflow et j'ai obtenu la réponse mais en utilisant NSMutableURLRequest car il y a une méthode - (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field; qui peut être appelée sur requestObject seulement. Comment ajouter de la valeur en utilisant _sessionManager.requestSerializer? Voici le code que j'utilise pour la configuration de la session.Comment définir l'en-tête http multiple using 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!"); 
} 

Répondre

3

L'en-tête Accept prend un comma separated list, donc quelque chose comme cela devrait fonctionner:

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

évidemment remplacer application/xml avec tout ce dont vous avez besoin.