[delphi] http get bląd 404

0

Chciałem napisać sobie program który będzie pobierał i wyświetlał avatary odpowiedniego użytkownika GG i zrobiłem sobie coś takiego:

procedure TForm1.Button1Click(Sender: TObject);
var
ico:Ticon;
  Stream : TMemoryStream;
  Jpeg : TJpegImage;
  i:integer;
begin
Stream := TMemoryStream.Create;
IdHttp1.Get('http://avatars.gadu-gadu.pl/small/xxxxxxx' ,Stream);
Stream.Position := 0;
Jpeg := TJpegImage.Create;
Jpeg.LoadFromStream(Stream);
canvas.Draw(10,10,jpeg);
 Stream.Free;
 Jpeg.Free;
end;

Oczywiście zamiast xxxxxxx jest numer określonego użytkownika, ale teraz mam problem bo gdy użytkownik ma ustawiony avatar to wszystko jest dobrze ale natomiast gdy go nie ma to wtedy taka strona nie istnieje - błąd 404 i wtedy program się sypie. I teraz pytanie co zrobić żeby program gdy zamiast obrazka będzie błąd 404 się nie wysypywał tylko żeby np wczytywał jakąś tam inna grafikę ?

0

Sprawdzić co funkcja zapisuje do Stream?

0

Nie wiem właśnie jak to zrobić...

0

try .. except ?

0

Nie działa, dalej to samo

0
John_zuk napisał(a)

Nie działa, dalej to samo

Objąłeś całą procedurę try... exceptem? Debugger Delphi powinien zgłaszać wyjątek, ale finalnie program go przemilczy.

0

jak program uruchamiasz spod srodowiska to i tak wyskoczy blad, jednak prawidlowe zastosowanie try except i odpalenie programu jako osobnego exe recznie, powinno dac rade.

do pobierania obrazkow to ja bym chyba nie uzyl indy i get hmm

0

A ja bym polecił tradycyjnie zamiast Indy użyć Synapse, pod poniższym adresem masz
przykładowy program którypobiera JPEGa do MemoryStreama i pokazuje go w Image:
http://www.speedyshare.com/files/21897890/pobieranie_obrazka_synapse.rar

0
John_zuk napisał(a)

Nie działa, dalej to samo

To może jeszcze pójść do Tools/Debugger Options potem zakładka Languagae exeptions i odzaznaczyć opcję "Stop on Delphi exceptions".

0
John_zuk napisał(a)

Nie działa, dalej to samo

no patrz, a u mnie dziala... :|
naprawde nie trzeba byc "pro" zeby zajrzec do googli i zobaczyc jak sie uzywa try..except....

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream : TMemoryStream;
  Jpeg : TJpegImage;
begin
 Stream := TMemoryStream.Create;
  try
    IdHttp1.Get('http://avatars.gadu-gadu.pl/small/xxxxxxx' ,Stream);
  except
    stream.free;
    exit;
  end;
 Stream.Position := 0;
 Jpeg := TJpegImage.Create;
 Jpeg.LoadFromStream(Stream);
 canvas.Draw(10,10,jpeg);
 Stream.Free;
 Jpeg.Free;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1