NSURLRequest 5 分钟发送一次


我用了AFNetworking这个框架做http请求框架,我有一个table list包含了subject,每次我点击一个cell,会呼叫 -(void)getDetailFromId:(NSInteger)id 并把id作为参数传过去,第一次点击cell时候,requset会立刻发送到服务器,并且返回数据,但是第二次,第三次...之后点击cell,requset都会返回timeout(code=-1001),等到5分钟后,服务器才会收到requset。只要一次timeout后,后面的request都会返回timeout。30分钟后再重新run 这个app,第一次没问题,第二次第三次...会timeout,请问是怎么回事,好像每次请求都没有结束,要等5分钟后才能发请求。这是我实现的代码


 -(void)getDetailFromId:(NSInteger)id
    {
    NSString *path =[NSString stringWithFormate: @"http://www.myserver.com/api/get/id/%d", id.intValue];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager GET:path parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    do something
    ...
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    do something
    ...
    }];
    }

请问我这种做法是错误的吗?我用NSURLConnection,实现相关的delegate,也会有这个问题出现。通常的做法是怎么样的呢?

ios afnetworking objective-c

春鸽慈父般的爱 10 years, 3 months ago

1.GET方式获取数据,只要你接收到数据或者服务器响应了,那么这次请求就肯定结束了。

2.你给的代码信息量很少,不知道你是怎么触发这个方法的,移动设备通常会限制URLConnection并发链接数,iPhone真机通常是并发4个是上限,当有4个NSURLConnection同时运行时你再启动第5个肯定会超时。

3.如果你能确保你的操作每次只执行一次请求,那么检查一下你的服务器吧,可能不是客户端的原因,你可以用换一个其他的地址测试一下,比如反复GET某门户的首页看看每次返回的是不是状态码200和一堆html数据。

暂时只能帮你到这了。

芽衣子·露 answered 10 years, 3 months ago

Your Answer