Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
idhttp yenileme
#1
idhttp ile ilgili makaleden yola çıkarak , bir siteye bağlanıp veri almayı başarabildim. Fakat orada anlamadığım bir konu var. Aşağıdaki şekilde giriş yaptıktan sonra farklı bir adrese yönleniyorum.  Fakat 3 saniyede bir gelen bilgiyi yenilemek için  IdHTTP.Get('http://deneme')  şeklinde bilgi çekmek istediğimde program kırılıyor. Sebebini anlayamadım. Tekrar idhttp create edip denedim session düştü. Belli aralıklarla yenilemek için ne yapmalıyım hatam nerede ?

function baglan(const username, password: string): string;
var
IdHTTP: TIdHTTP;
Request: TStringList;
begin
try
  Request := TStringList.Create;
  try
     Request.Add('work=login');
     Request.Add('login_user='+username);
     Request.Add('login_pass='+password);
    IdHTTP := TIdHTTP.Create;
    try
      IdHTTP.AllowCookies := True;
      IdHTTP.HandleRedirects := True;
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
      IdHTTP.Post('http://deneme/src/api.php', Request);
      Result := IdHTTP.Get('http://deneme');
      if StrUtils.ContainsStr(Result, 'GİRİŞ YAP') then //Login başarısız 
        Result := '' else begin
          Result := IdHTTP.Get('http://deneme/salon.html?id=1');
        end;
    finally
     // IdHTTP.Free;
    end;
  finally
    Request.Free;
  end;
except
  Result := '';
end;
end;
Cevapla
#2
"Program Kırılıyor" derken, bir hata mesajı mı alıyorsunuz; eğer öyle ise hata mesajı nedir ? IdHttp'yi Free etmemişsiniz, memory leak var. Ayrıca bir alışkanlık olması açısından belirteyim; create edeceğiniz nesneleri try'ın üstünde tanımlayın. Create silsilesinde bir hata oluşur ise bu durumda nesne oluşmamış oluşur, dolayısı ile Request (sizin örneğiniz için) rastgele bir şey ile dolu olur ve Free edilmesi çok büyük olasılıkla Access Violation hatasına neden olur.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
access violation hatası ile kırılıyordu. Bende fonksiyon içinde idhttp yi create ederek kullanmaktan vazgeçip formuma ekledim. Yanlız şöyle bir sorun var, idhttp get ile sayfayı aldığımda , html içerikler geliyor ama Ajax ile üretilen içerikler gelmiyor. Eee şimdi ne yapcaz bu hiç olmadı Smile))
Cevapla
#4
(08-01-2019, Saat: 09:36)CesuR Adlı Kullanıcıdan Alıntı: access violation hatası ile kırılıyordu. Bende fonksiyon içinde idhttp yi create ederek kullanmaktan vazgeçip formuma ekledim. Yanlız şöyle bir sorun var, idhttp get ile sayfayı aldığımda , html içerikler geliyor ama Ajax ile üretilen içerikler gelmiyor. Eee şimdi ne yapcaz bu hiç olmadı Smile))

Json tipinde veri almayı deneyin
- Namyelus
WWW
Cevapla
#5
O şekilde de bir deniyeyim üstadım. Umarım olur
Cevapla
#6
Programın nerede kırıldığını göstermeden, size isabetli yanıt vermek çok zor olur. Programın kırıldığı noktada break button'una basıp kod ortamına geçin ve Call Stack'a bakın. Sizin için bundan daha güzel yardımcı olmaz emin olun.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#7
Evet haklısınız. Teşekkürler
Cevapla
#8
Haklısınız . Şöyle özetliyeyim  idhttp ile siteye bağlanıyor içeriği çekiyorum.  İçerikte  class adı act olan bir div var bu divin içindeki rakam her 5 saniyede bir değişiyor. Amacım her beş saniyede bir buradaki bilgiyi almak. 
PHP Kod:
<div class="act"><span>61</span></div


şu şekilde ne kadar çekersem çekeyim gelen sonuç hiç değişmiyor. Div içinde gelen rakam hep 61 oysa oradaki rakam hep değişiyor.

procedure test;
   var
 get_url: string;
 resp: TMemoryStream;
begin
 get_url := 'http://xxxx/salon.html?id=1';
 resp := TMemoryStream.Create;
 try
   Form1.IdHTTP1.Get(get_url, resp);
   resp.Position := 0; // <-- add this!!
   form1.memo1.Lines.LoadFromStream(resp);
 finally
   resp.Free;
 end;
end;
Cevapla
#9
"Post" metosunu deneyin. "Get", program kapanıp açılmadığı sürece hafızadaki bilgiyi getirir.
Cevapla
#10
Onuda denedim sonuç aynı teşekkürler
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TcpServer Client Bağlantı Yenileme CesuR 24 524 05-03-2019, Saat: 00:14
Son Yorum: CesuR
  IDHttp error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure hata burakb44 12 954 02-09-2018, Saat: 23:37
Son Yorum: burakb44
  IdHTTP post arsl01 12 1.073 10-07-2018, Saat: 08:13
Son Yorum: arsl01
Star ıdHTTP Post hakkında? [Çözüldü] ozcanm 1 647 06-02-2018, Saat: 13:36
Son Yorum: ozcanm
  idHttp "Cloud not load SSL library" Halil Han Badem 6 1.317 31-08-2017, Saat: 15:00
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi