Здравствуйте!
Возникла проблема следующего характера.
Не могу скачать существующий .PNG-тайл с сервера при помощи стандартной передачи URL этого тайла переменной
ResultURL.
Тайл этот прекрасно скачивается в любом броузере.
Даже
DoHttpRequest его качает без проблем.
А вот передача ссылки через ResultURL перестала работать несколько месяцев назад.

Есть подозрение, что это связано с отдаваемым сервером новым
content-typeбыло:
content-type: image/pngстало:
content-type: image/png;charset=UTF-8Адаптировал
ContentType в
Params.txt - не помогло.
Или проблема в том, что сайт перешёл на HTTP/2 ?
Но по содержимому переменной
ResponseHead видно, что тайл всё же скачивется, но на диск не сохраняется.
В чём может быть проблема ?
Точнее, как выйти из этой ситуации ?
Это баг программы или я что-то намудрил ?
Тестовый ZMP:
- скрытый текст: показать
- Код: Выделить всё
[PARAMS]
GUID={CBA03063-23D9-FAAF-CDDC-9182B98644B2}
asLayer=1
name_ru=TEST
name =TEST
name_uk=TEST
CacheType=2
DefURLBase=
projection=1
sradiusa=6378137
sradiusb=6378137
NameInCache=TEST
Ext=.png
ContentType=image/png
UseDwn=1
IsUseDownloaderInScript=1
MaxConnectToServerCount=1
Тестовый скрипт:
- скрытый текст: показать
- Код: Выделить всё
Const
NameInCache='C:cache\Test';
VRequestUrl='https://downloadqdc.garmin.com/GCSProxyServlet/MarineImages/1201230202002002122.png?units=m';
VAR
VResponseCode : Cardinal ;
VResponseHeader,
VResponseData ,
VRequestHeader : AnsiString;
BEGIN
SaveToLocalFile(NameInCache+'\ResultURL' ,ResultURL );
ResultURL:='';
// Method #1
VRequestHeader := '';
VResponseHeader := '';
VResponseData := '';
if Assigned(Downloader) then
VResponseCode := Downloader.DoHttpRequest(VRequestUrl, VRequestHeader, '', VResponseHeader, VResponseData);
SaveToLocalFile(NameInCache+'\VResponseCode' ,IntToStr(VResponseCode)+' - '+IntToStr(GetX)+' - '+IntToStr(GetY)+' - '+IntToStr(GetZ));
SaveToLocalFile(NameInCache+'\VRequestUrl' ,VRequestUrl );
SaveToLocalFile(NameInCache+'\VRequestHeader' ,VRequestHeader );
SaveToLocalFile(NameInCache+'\VResponseHeader',VResponseHeader);
SaveToLocalFile(NameInCache+'\VResponseData' ,VResponseData );
// Method #2
SaveToLocalFile(NameInCache+'\GetURLBase' ,GetURLBase );
SaveToLocalFile(NameInCache+'\RequestHead' ,RequestHead );
SaveToLocalFile(NameInCache+'\ResponseHead' ,ResponseHead );
SaveToLocalFile(NameInCache+'\ScriptBuffer' ,ScriptBuffer );
ResultURL:=VRequestUrl;
END.
Ответ сервера:
- скрытый текст: показать
- HTTP/2 200
date: Thu, 25 Jun 2025 22:10:42 GMT
content-type: image/png;charset=UTF-8
content-length: 38697
x-content-type-options: nosniff
x-xss-protection: 0
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
strict-transport-security: max-age=31536000 ; includeSubDomains
x-frame-options: DENY
last-modified: Thu, 25 Jun 2025 22:10:42 GMT
cf-cache-status: MISS
accept-ranges: bytes
vary: Accept-Encoding
server: cloudflare
cf-ray: 956009464b80902d-ARN
Ссылка на полный скрипт, который отлично работал на момент написания:
https://www.sasgis.org/forum/viewtopic. ... 959#p49959