Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 18:45   #1
Nockola
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 13
Печаль Как при неудчной загрузке файла, пропустить ошибку (HTTP/1.0 504 Gateway Time-out) и прочии

Здравствуйте!
Больше недели ищу способ заставить прогу работать без ошибок.
Прога создаёт ПРАЙС-ЛИСТ + фото товаров.
Она работает так:
- вношу ссылку на группу товаров
- прога делает список ссылок на товары
- после этого, заходит по ссылке и сохраняет все фото

Если делать просто запрос на фото
Код:
text:=IdHTTP1.Get(ListBox2.Items[0]); //список ссылок на JPG файлы
Т.к. товаров у меня обычно 200 и на каждый идёт фотографий 20, то времени, при загрузки фото с сервера, возникают разные ошибки (не существует файла, что-то там с сокетом и пр.)

Чтобы избежать ошибки о не существования файла, я проверяю его на существование:
Код:
function CheckUrl(url: string): boolean;
var
  hSession, hfile, hRequest: hInternet;
  dwindex, dwcodelen: dword;
  dwcode: array [1..20] of char;
  res: pchar;
begin
  if pos('http://', lowercase(url)) = 0 then
    url := 'http://'+url;
  Result := false;
  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if assigned(hsession) then
  begin
    hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);
    dwIndex := 0;
    dwCodeLen := 10;
    HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
    res := pchar(@dwcode);
    result := (res = '200') or (res = '302'); //если добавить другие (504) то не помогает
    if assigned(hfile) then
      InternetCloseHandle(hfile);
    InternetCloseHandle(hsession);
  end;
end;

//сам код
if CheckUrl(ListBox2.Items[0])=true then //проверяем ссылку на существование
begin
end;
text:=IdHTTP1.Get(ListBox2.Items[0]);
try
IdHTTP1.Disconnect;  {чтобы не возникала ошибка "Cannoction Closed Gracefully"}
except
on E:EIdSocketError do IdHTTP1.Socket.Close; //чтобы не возникало ошибки сокета Но она всё равно возникает =(
end;
Если возникает любая ошибка:
HTTP/1.0 503 Service Unavailable
HTTP/1.0 408 Request Time-out - вот эта ошибка чаще всего возникает
то прога перестаёт загружать JPG файлы и вся работа насмарку..

Подскажите как при загрузки файла, проигнорировать любую ошибку от сервера и продолжить работу программы дальше, чтобы она не обратила внимание на ошибку/игнорировала её/пропустила/сама закрыла и работала дальше..

Встречал такие темы но в них тема не была раскрыта =(

Последний раз редактировалось Nockola; 27.12.2010 в 08:20.
Nockola вне форума Ответить с цитированием
Старый 26.12.2010, 18:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Подскажите как при загрузки файла, проигнорировать любую ошибку от сервера и продолжить работу программы дальше, чтобы она не обратила внимание на ошибку/игнорировала её/пропустила/сама закрыла и работала дальше..
А толку? Соединение то закрыто, следовательно ты ничего не сможешь догрузить.
Выясняй причину недоступности соединения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2010, 19:12   #3
Nockola
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А толку? Соединение то закрыто, следовательно ты ничего не сможешь догрузить.
Выясняй причину недоступности соединения.
Ошибка только при загрузке данного фото (одного из 2000 штук), остальные то загрузятся! Просто сервер на котором фото - иногда глючит..
Nockola вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить Acces Violation при загрузке файла Человек_Борща Общие вопросы Delphi 2 01.08.2010 14:50
Подмена exel файла при загрузке со страницы Алексей131 JavaScript, Ajax 3 27.06.2010 14:20
Проблема при загрузке файла XML в TreeView artemavd Общие вопросы Delphi 1 20.06.2010 15:39
ПРограмма подвисате при загрузке большого файла.. cowboy Общие вопросы .NET 15 05.10.2009 13:28
Ошибка при загрузке файла html Ign Microsoft Office Excel 1 11.11.2007 13:55