[delphi] http get bląd 404

Odpowiedz Nowy wątek
2010-04-11 20:07
john_zuk
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ę ?

Pozostało 580 znaków

2010-04-11 21:24
hck
0

Sprawdzić co funkcja zapisuje do Stream?


joł joł ****!

Pozostało 580 znaków

2010-04-11 21:52
John_zuk
0

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

Pozostało 580 znaków

2010-04-11 21:59
0

try .. except ?

Pozostało 580 znaków

2010-04-11 22:14
John_zuk
0

Nie działa, dalej to samo

Pozostało 580 znaków

2010-04-11 22:49
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.


Women were the reason I became a monk - and, ah, the reason I switched back...

Pozostało 580 znaków

2010-04-11 22:52
danny
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

Pozostało 580 znaków

2010-04-12 01:15
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


Pozostało 580 znaków

2010-04-12 12:08
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".

Pozostało 580 znaków

2010-04-12 12:22
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;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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