2016-01-24 3 views
0

У меня есть несколько серий изображений, хранящихся в папках на веб-сервере. Иерархия папок выглядит примерно так ...XCode NSMutableURLRequest не попадает на веб-сервер

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 

пользователь выбирает один из серии, первоначальный, Recall, или Final из списка на IPad и серии извлекается с сервера и отображается. Для получения изображений я использую следующий код. В этом примере я извлекая в JPGs, которые начинаются с т ...

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 возвращается с пробелами. Требуется 500-килобайтный файл, а imageData - 800 байт. Я могу посмотреть увеличение количества попыток сервера для каждого запроса на изображение. Если серия не удалась, сервер вообще не попадает. то есть. Если в приведенной выше примерной иерархии файлов я выбираю Recall, количество серверов увеличивается на 4, то же самое с Initial, но если я выберу Final, количество серверов не увеличивается.

Вот фактические 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 

URL-адрес для Final в этом случае действует и не попав на сервер, но я не вижу ничего, что выскакивает на меня в URL-адресов это может быть подозрительным. Кто-нибудь видит что-либо в моем коде, что может способствовать этой проблеме? Я знаю, что это не проблема с файлом, так как даже если я переименую одну из рабочих папок, чтобы не удалось найти запрошенный файл, сервер попадает, а iPad получает пустые изображения без каких-либо ошибок.

Спасибо за любую помощь.

John

ответ

0

Ok. Это проблема с кешем. Я установил ее, изменив политику кэширования ...

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

Джон

Смежные вопросы