如何使用 sessionManager (AFNetworking) 设置多个 http header
How do i set multiple http header using sessionManager (AFNetworking)
我搜索了各种 Whosebug 问题并得到了答案,但使用 NSMutableURLRequest
因为只有一种方法 - (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field;
只能通过 requestObject
调用。
如何使用 _sessionManager.requestSerializer
增加价值?或任何解决方法。这是我用于 session 配置的代码。
- (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!");
}
Accept
header 需要一个 comma separated list,所以这样的事情应该有效:
[_sessionManager.requestSerializer setValue:@"application/json, application/xml" forHTTPHeaderField:@"Accept"];
显然用你需要的任何东西替换 application/xml
。
我搜索了各种 Whosebug 问题并得到了答案,但使用 NSMutableURLRequest
因为只有一种方法 - (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field;
只能通过 requestObject
调用。
如何使用 _sessionManager.requestSerializer
增加价值?或任何解决方法。这是我用于 session 配置的代码。
- (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!");
}
Accept
header 需要一个 comma separated list,所以这样的事情应该有效:
[_sessionManager.requestSerializer setValue:@"application/json, application/xml" forHTTPHeaderField:@"Accept"];
显然用你需要的任何东西替换 application/xml
。