2016-01-24 52 views
0

我有几个系列的图像存储在Web服务器上的文件夹。文件夹层次结构看起来是这样的......XCode NSMutableURLRequest没有打到Web服务器

WebServer’s Web Folder 
    _2016_4671579 
     Final 
      t1.jpg 
      t2.jpg 
      i1.jpg 
      i2.jpg 
     Recall 
      t1.jpg 
      t2.jpg 
      i1.jpg 
      i2.jpg 
     Initial 
      t1.jpg 
      t2.jpg 
      i1.jpg 
      i2.jpg 

用户选择的系列,最初的,回想一下,或者在iPad上列表和一系列最终从服务器检索和显示的一个。我正在使用下面的代码来检索图像。在这个例子中,我检索是有T开始JPG格式...

for (int i = 0; i < imageCount; i++) { 
    fileName = [NSString stringWithFormat:@"t%i.jpg", i+1]; 
    imagePath = [NSString stringWithFormat:@"_%@/%@/%@", [opHelper ID], [seriesArray objectAtIndex:thumbsSeriesIndex], fileName]; 
    urlString = [[NSString stringWithFormat:@"http://%@/%@", [opHelper hostIP], imagePath] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    url = [NSURL URLWithString:urlString]; 
    imageURL = [NSMutableURLRequest requestWithURL:url]; 
    NSURLResponse *response; 
    NSError *error; 
    imageData = [NSURLConnection sendSynchronousRequest:imageURL returningResponse:&response error:&error]; 
     //consume the imageData 
} 

这个工程除了在一段时间后,我回去空白影像的系列产品之一。在我的例子中,我会用Initial和Recall来获得很好的图像,但Final最后回来的是空白。一个500kb的文件被请求,imageData获得800字节。我可以看到每个图像请求的服务器命中数增加。如果一个系列失败,服务器根本没有被击中。即。如果在上面的示例文件层次结构中选择“重新调用”,则服务器计数将与初始值相同增加4,但如果选择“最终”,则服务器计数不会增加。

这里是正在发送的实际NSURLs ...

url NSURL * @"http://192.168.1.100/_2016_4671579/Final/t1.jpg" 0x80a7f640 
url NSURL * @"http://192.168.1.100/_2016_4671579/Recall%201/t1.jpg" 0x804fbcf0 
url NSURL * @"http://192.168.1.100/_2016_4671579/Initial/t1.jpg" 0x8088da30 

在这种情况下,最后的网址上的作用并没有击中服务器,但我没有看到任何的网址,跳出我这可能是可疑的。有人在我的代码中看到任何可能导致此问题的东西吗?我知道这不是一个文件问题,因为即使我重命名其中一个工作文件夹,以便找不到请求的文件,服务器也会被击中,并且iPad无任何错误地收到空白图像。

感谢您的任何帮助。

约翰

回答

0

好的。这是一个缓存问题。我固定它通过修改缓存策略...

imageURL = [NSMutableURLRequest requestWithURL:url]; 
imageURL.cachePolicy = NSURLRequestReloadIgnoringCacheData; 

约翰