Есть приложение, которое взаимодействует через компонент idHTTP со скриптом на внешнем сервере (в инете).
Скрипт на РHP, генерирует по заданным параметрам картинку, сохраняет ее во временную папку на серваке (типа кэш, чистится раз в неделю).
Программа моя сначала отправляет запрос на сайт, чтобы сгенерировалась эта картинка, а потом отправляет новый запрос, из которого получает саму картинку.
Вот сам код:
// процедура загружает из инета jpg-картинку, сохраняет ее в системную папку как bmp
// и устанавливает как обои
procedure TMainForm.Pic(num:integer; w,h: integer);
var
SourceFile:string;
DestFile:string;
M:TMemoryStream;
j:tjpegimage;
b:TBitmap;
fname:string;
begin
// отправляем на сервак запрос, на сервере создается временный файл с обоями
SourceFile:=Format('
http://desktopmania.ru/picd?id=%d&r=%dx%d',[num,w,h]);
M:=TMemoryStream.Create;
HTTP.Get(SourceFile,M);
m.Clear;
// загружаем эту временную картинку
SourceFile:=Format('
http://desktopmania.ru/pics-temp/DesktopMania.ru-%d-%dx%d.jpg',[num,w,h]);
HTTP.Get(SourceFile,M);
M.Position:=0;
j:=tjpegimage.Create;
j.LoadFromStream(M);
//j.LoadFromFile('d:\pic.jpg');
b:=tbitmap.Create;
b.Assign(j);
fname:=SysInfo.WinPath+'\Wallpaper.bmp';
b.SaveToFile(fname);
j.Free;
b.Free;
m.Free;
// устанавливаем картинку как обои
ChangeWallpaper(fname);
end;
Теперь самое интересное. Программа тестируется на 2-х компах с разными сетевыми настройками и разным качеством доступа в инет:
на одном компе, где соединение с инетом не через прокси (хотя скорее всего прокси не при чем) и скорость соединение не больше 4кб/сек прога выдает ошибку во втором запросе - типа не найдена картинка, т.е. первый запрос не завершился, видимо и соответственно, картинка еще не была сохранена,
а на втором компе, где прокси есть (прога, кстати, автоматом определяет настройки прокси из IE, так что с этим вроде все в порядке), но скорость соединения хорошая (около 100кб/сек) - все работает как часы.
В чем причина может быть?
Использовать свойство idHTTP ReadTimeOut или что-то еще?
Читал книгу-перевод "Глубины Indy" от товарища Подгорецкого, но ничего меня не натолкнуло на ответ. Ситуация нестандартная какая-то...