NSURLConnection загружает файлы JPEG низкого качества на 3G
-
03-07-2019 - |
Вопрос
Я загружаю изображение JPEG с сервера и назначаю его объекту изображения в своем приложении для iPhone с помощью NSURLConnection.
Все работает нормально, когда я подключен к Wi-Fi, но как только я переключаюсь на 3G, качество загружаемого JPEG резко падает.
Кто-нибудь еще испытал это?
Кто-нибудь знает способ заставить iPhone загружать JPEG в полном качестве?
Заранее спасибо!Ник.
Решение
Если это провайдер 3G сжимает данные на лету, я не думаю, что вы можете что-то с этим поделать.Загрузите изображение с помощью Safari через 3G -> если изображение выглядит плохо (а я ожидаю, что так и будет), значит, его сжимает провайдер.
Чтобы обойти эту проблему, заархивируйте изображение на сервере и разархивируйте его в приложении -> это должно обойти сжатие на стороне 3G.
Другие советы
Простой трюк — использовать https вместо http — похоже, это работает на O2.
Я знаю, что этот вопрос довольно старый, но если это кому-нибудь пригодится...
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:theURL];
// Add headers to avoid mobile network operator image compression
[request setValue:@"no-cache" forHTTPHeaderField:@"Pragma"];
[request setValue:@"no-cache" forHTTPHeaderField:@"Cache-Control"];
Должно прекратиться сжатие изображений.
Оператор мобильной связи сжимает изображения в целях экономии полосы пропускания, но они, как правило, учитывают эти поля заголовка и позволяют запрашивать несжатое изображение.