0
我發送帶有異步請求的NSURLConnection,以便我可以取回一個cookie,然後對該cookie執行一些操作。在NewRelic上,服務器說它正在處理1秒以內的請求。但是當我在iOS端做時間標記時,我發現它需要5-10秒才能到達completionHandler ......有沒有人遇到過這個問題?我已將所有其他網絡帶寬使用減少爲無,並且仍然存在此問題。對其他端點的其他請求似乎相當快。NSURLConnection異步調用在其響應中被延遲
所以NewRelic報告似乎報告的時間戳範圍只有400ms的請求......但就像我說我看到它在5000ms到10000ms。
想法?這是我的代碼。
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
if(response)
{
// code to handle with the response
NSLog(@"timestamp after -success: %@",[NSDate date]);
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
if ([httpResponse respondsToSelector:@selector(allHeaderFields)]) {
NSDictionary *fields = [(NSHTTPURLResponse *)response allHeaderFields];
// NSString *cookie = [fields valueForKey:@"Set-Cookie"]; // It is your cookie
NSArray * all = [NSHTTPCookie cookiesWithResponseHeaderFields:[httpResponse allHeaderFields] forURL:[NSURL URLWithString:[theUrlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]];
DLog(@"%d", all.count);
for (NSHTTPCookie *cookie in all) {
DLog(@"Name: %@ : Value: %@", cookie.name, cookie.value);
}
[[WDDataController sharedInstance] resumeOperations];
[[NSNotificationCenter defaultCenter] postNotificationName:SERVICE_AUTHENTICATED object:nil];
}
}
if (error){
NSLog(@"timestamp after error: %@",[NSDate date]);
// code to handle with the error
NSLog(@"Error: &@",error);
[[WDDataController sharedInstance] resumeOperations];
}
}];
所以是的,我發現有一個重定向正在爲我提供一個大網站的後續字。解決方案是處理重定向並從那時起更新我的用戶界面,而不是等待長時間的重定向... – theprojectabot