XCode NSMutableURLRequest 没有访问网络服务器

XCode NSMutableURLRequest not hitting the web server

我有几个系列的图像存储在网络服务器上的文件夹中。文件夹层次结构看起来像这样……

WebServer’s Web Folder
   _20160123161915_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

用户 select 从 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 个字节。我可以看到每个图像请求的服务器命中数增加。如果系列失败,则服务器根本不会受到攻击。 IE。如果在上面的示例文件层次结构中,我 select 召回服务器计数增加 4,与初始相同,但如果我 select 最终服务器计数不增加。

这里是实际发送的 NSURLs…

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

在这种情况下,Final 的 url 出现问题,没有访问服务器,但我没有看到任何可能在 URL 中跳出来的可疑内容。有没有人在我的代码中看到任何可能导致此问题的内容?我知道这不是文件问题,因为即使我重命名其中一个工作文件夹以致无法找到所请求的文件,服务器也会受到攻击并且 iPad 收到空白图像而不会出现任何错误。

感谢您的帮助。

约翰

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

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

约翰