Ios NSMutableURLRequest“;“请求超时”;问题

Ios NSMutableURLRequest“;“请求超时”;问题,ios,objective-c,nsurlconnection,nsmutableurlrequest,nsurlconnectiondelegate,Ios,Objective C,Nsurlconnection,Nsmutableurlrequest,Nsurlconnectiondelegate,我试图使用以下代码在我的应用程序中下载数据 NSURL *url = [NSURL URLWithString:@"my download url string"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.f]; NSURLConnection * conn

我试图使用以下代码在我的应用程序中下载数据

NSURL *url = [NSURL URLWithString:@"my download url string"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.f];

NSURLConnection * connection = [NSURLConnection connectionWithRequest:request delegate:self];

[connection start];
但问题是,有时我会出现以下错误

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x1d5be240 
{NSErrorFailingURLStringKey=http://dr282zn36sxxg.cloudfront.net/datastreams/f-
d%3Afc7f649e1e3ba58452f67e3fa1f66f69a15b96b3ea585c946e4fa854%2BEPUB%2BEPUB.1, 
NSErrorFailingURLKey=http://dr282zn36sxxg.cloudfront.net/datastreams/f-
d%3Afc7f649e1e3ba58452f67e3fa1f66f69a15b96b3ea585c946e4fa854%2BEPUB%2BEPUB.1, 
NSLocalizedDescription=The request timed out., NSUnderlyingError=0x1e1975b0 "The request 
timed out."}

那么,有谁能建议我如何解决这个问题吗

错误消息清楚地表明请求已超时-到达一个地方您可以获得更好的网络速度或增加请求超时,我认为它有时为60,这可能不足以下载图像。

尝试使用名为
[NSURLConnection sendsynchronousrequest:queue:completionHandler:
的GCDs抽象:

示例

NSURL *url = [NSURL URLWithString:@"your_URL"];
NSURLRequest *myUrlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest: myUrlRequest queue: queue completionHandler: ^ (NSURLResponse *response, NSData *data, NSError *error)
{

    if ([data length] > 0 && error == nil)
        //doSomething With The data

    else if (error != nil && error.code == ERROR_CODE_TIMEOUT)
        //time out error

    else if (error != nil)
        //download error
}];

这有什么区别吗?

将超时时间间隔增加150秒。

您正在尝试下载什么类型的数据?@iosconder查看错误消息;)@iosconder这是一个扩展名为的文件。epubI刚刚在模拟器中尝试过,它肯定是正确的working@riyaz这是一个相当大的文件,所以你下载它吗在Wifi或蜂窝网络上?这不是图像下载;)在当前的NSURLConnection实现中,当连接上存在“timeoutInterval”秒不活动时会发生超时。也就是说,即使数据缓慢进入,当您每“timeoutInterval”秒(指定为60秒)至少获得一个字节时,也不应超时。