Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
NetHttpClient Fmx Resim
#1
Merhaba,

Uygulamamda aşağıdaki kodlar ile resim getiriyorum. Lakin eğer istenen dosya yok ise hata dönüyor bana ve listview de listelenemiyor. Onun kontrolünü nasıl sağlayabilirim.

Resmi Çağırdığım Bölüm :

try
  MS  := TMemoryStream.Create;
 MS  := ResimGoster('http://cihankoca.com.tr/resimler/201182.jpg');
 if MS.Size > 0 then mtSatisResim.LoadFromStream(MS);
finally
 FreeAndNil(MS);
end;

Resmi Kontrol Ettiğim Bölüm :

 
function TFrmSatis.ResimGoster(pUrl : string) : TMemoryStream;
var
 qrString: String;
 qrDims: integer;
 Ms1  : TMemoryStream;
begin
 if pUrl <> '' then
 begin
   qrDims    := Screen.Width - 100;
   qrString  := pUrl;
   try
     Ms1  := TMemoryStream.Create;
     try
       NetHTTPClient1.get(qrString, Ms1);
     except

     end;

     Ms1.Seek(0,soFromBeginning);

     Result := Ms1;
   finally
     //FreeAndNil(Ms1);
   end;
 end
 else
 begin
   //ShowMessage('Please, input a text.');
 end;
end;

Teşekkürler
WWW
Cevapla
#2
Mevcut yapı için konuşuyorum, öncelikle yapıda; function cevabı boolean yapın, tmemorystream'i parametre yapın.

if ile function true ise memorystream içeriğini okuyun.

try finally / try except ile de duruma göre result true-false değer alsın.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
Merhaba Hocam

Dediğiniz yaptım hem parametre olarak function da kullanıp hem de parametresiz dışarıdan kullanarak function sonucunda her ikisinde de boolean döndürerek ama aynı hata ile karşılaştım. NetHttpClient in değer alıp almadığını kontrol edemiyor gibi. Her halükarda bir değer dönüyor gibi çözümlüyorum
WWW
Cevapla
#4
@cihankoca

"hata dönüyor" derken exception düşüyor şeklinde yanlış anlamışım. 

* Resmin linkini bir browser'a yazdığınızda site ne cevap döndürüyorsa NetHttpClient o içeriği döndürür.

Sizin verdiğiniz link örneğin şunu döndürüyor.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

Diğer yandan içerik kontrolüne gerek kalmadan şöyle yaparsanız olacaktır.


Uses  System.Net.HttpClientComponent;

function ResimGoster(pUrl : string; pMS:TMemoryStream) : Boolean;
var
  LClient   : System.Net.HttpClientComponent.TNetHTTPClient;
  LResCode  : Integer;
begin
  Result  := False;
  if pUrl <> '' then
  begin
    if Assigned(pMS) then
    begin
      LClient := System.Net.HttpClientComponent.TNetHTTPClient.Create(nil);
      try
        LResCode := LClient.Get( pUrl, pMS ).StatusCode;
        // 404 not forund
        // 200 OK
        pMS.Seek(0, soFromBeginning);
        Result := LResCode = 200;
      finally
        LClient.Free;
      end;
    end;
  end;
end;


Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#5
Teşekkürler hocam deneyeceğim. O linki bilerek verdim içinde birşey olmadığı için olmayan da hatadan nasıl kurtarırım diye.

Oldu hocam teşekkürler
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fmx Android - Termal Yazıcı Resim Yazdırma hi_selamlar 8 1.800 17-10-2024, Saat: 18:21
Son Yorum: esistem
  NetHTTPClient.Post guvenlik 5 1.642 31-03-2024, Saat: 09:15
Son Yorum: mrmarman
  [Çözüldü] FMX Android uygulaması ile sunucuya resim yükleme Mesut 2 1.254 25-07-2023, Saat: 00:40
Son Yorum: Mesut
  Galerinden resim eklediğim zaman yönünün değişmesi codder71 4 1.760 24-07-2023, Saat: 18:32
Son Yorum: codder71
  Resim Çizme Programı quiet1day 0 725 24-07-2023, Saat: 11:35
Son Yorum: quiet1day



Konuyu Okuyanlar: 1 Ziyaretçi