0
我试图使用AFNetworking在每个请求的基础上设置自定义头,但偶尔会在设置后看起来会消失。下面是用来做请求的代码......AFNetworking请求头被设置后丢失
+ (void) getWithURI: (NSString*) uri header: (NSDictionary*) header success: (NSString*) successCallback failure: (NSString*)errorCallback dispatch: (NSString*)dispatchedId
{
createManagerInstance();
AFHTTPRequestOperation* operation = [manager GET:uri
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[RestWrapper succeededWithJson:operation.responseString dispatchedId:dispatchedId successCallback:successCallback];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[RestWrapper failedWithJson:operation.responseString dispatchedId:dispatchedId errorCallback:errorCallback];
}];
NSMutableURLRequest* request = (NSMutableURLRequest*)operation.request;
for (NSString* key in header)
{
if([request valueForHTTPHeaderField:key] != nil)
{
[request setValue:header[key] forHTTPHeaderField:key];
}
else
{
[request addValue:header[key] forHTTPHeaderField:key];
}
}
NSLog(@"Headers: %@", request.allHTTPHeaderFields);
[operation start];
}
对于我的要求的95%,他们通过如预期。然而,偶尔会有一些失败,并指示缺少标题。这已通过使用Fiddler捕获有问题的请求并查看头文件实际上丢失来确认。尽管如此,控制台日志request.allHTTPHeaderFields
总是显示标题。
我注意到的唯一的另一件事是,一般来说,Fiddler会将缓存策略报告为每个请求的“max-age = 0,private,must-revalidate”。但是,每当请求丢失自定义标头时,它的缓存策略就是“no-cache”。
谢谢,这个固定的问题。 – BJO