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