我发送一个带有异步请求的NSURLConnection,以便我可以取回一个cookie,然后用该cookie做一些事情。在NewRelic上,服务器说它正在1秒内处理请求。但是当我在iOS端进行时间戳时,我发现需要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];
}
}];
答案 0 :(得分:0)
我现在可以说的是,New Relic报告的请求时间跨度是HTTP请求往返时间,并不包括在完成处理程序中完成的任何工作。您是否认为New Relic导致此延迟或应报告较长时间?