我正在发送一个带有异步请求的 NSURLConnection,这样我就可以取回一个 cookie,然后用那个 cookie 做一些事情。在 NewRelic 上,服务器说它正在 1 秒内处理请求。但是,当我在 iOS 端进行时间戳记时,我发现到达 completionHandler 需要 5-10 秒......有人遇到过这个吗?我已将所有其他网络带宽使用减少到零,但我仍然遇到这个问题。对其他端点的其他请求似乎很快。
因此,NewRelic 报告似乎报告该时间戳跨度中的请求仅为 400 毫秒……但就像我说的那样,我在 5000 毫秒到 10000 毫秒看到它。
想法?这是我的代码。
[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];
}
}];