HTTPReqresp nesnesi ile XML gönderip alma işleminde timeout

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
era
Üye
Mesajlar: 17
Kayıt: 01 Oca 2009 09:23

HTTPReqresp nesnesi ile XML gönderip alma işleminde timeout

Mesaj gönderen era »

oluşturduğum XLM i aşağıda create ediyorum
stream:=tmemorystream.Create;
try
HTTPReqresp1.URL:= 'http://XXXReceiverService';
HTTPReqResp1.UseUTF8InHeader:=true;
HTTPReqResp1.UserName:=DNAME;
HTTPReqresp1.Password:=DPAS;
HTTPReqresp1.Execute(XMLData.Text,Stream); // burada oluşturduğumuz xml i post ediyoruz. cevap Stream içinde dönüyor
except
ShowMessage('Sistem ile Bağlantı kurulamıyor.Daha Sonra Tekrar deneyiniz...');
exit;
end;

XML gönderdiğim karşı tarafta herhangi bir problem yok ise gelen XML cevabı rahatlıkla alıp işlemime devam ediyorum yalnız karşı trafta herhengi problem olduğunda gönderdiğim XML karşılık " ShowMessage('Sistem ile Bağlantı kurulamıyor.Daha Sonra Tekrar deneyiniz...'); " cevabını alıyorum ama bazı durumlarda ise bu cevap dahi gelmiyor ve programı kitliyor taki belirli bir süre geçtikten sonra (bazen 3-5 dk sürebiliyor) hata mesajını "ShowMessage('Sistem ile Bağlantı kurulamıyor.Daha Sonra Tekrar deneyiniz...');" alabılıyorum

burada şu işlemleri yaptım ancak başarılı olamadım
HTTPReqresp1.Execute(XMLData.Text,Stream); satrının üzerine

HTTPReqresp1.SendTimeout := 10000;
HTTPReqresp1.ReceiveTimeout := 10000;

koydum herhangi bir olumlu sonuç alamadım daha sonra

function InternetVarmi: Boolean;
const
modem:dword=INTERNET_CONNECTION_MODEM;
lan:dword=INTERNET_CONNECTION_LAN;
proxy:dword=INTERNET_CONNECTION_PROXY;
modem_mesgul:dword=INTERNET_CONNECTION_MODEM_BUSY;
var mesaj:string;
begin
if InternetGetConnectedState(@modem,0) then
Result:=True
else
if InternetGetConnectedState(@LAN,0) then
Result:=True
else
if InternetGetConnectedState(@PROXY,0) then
Result:=True else
if InternetGetConnectedState(@modem_mesgul,0) then
Result:=True
else
Result:=False;
end;

function ununu
HTTPReqresp1.Execute(XMLData.Text,Stream); satrının üzerine koydum ama yine timeout veya herhangi bir hata geri dönüşün yakalayamadım

burda benim istediğim
HTTPReqresp1.Execute(XMLData.Text,Stream); bu satıra girmeden karşıtarafta herhengi bir problem varmı yokmu kontrol etmek birde gelecek olan cevap belitli bir sürenin üstünde ise işlemi sonlandırmak

yardımcı olana arkadaşlara şimdiden teşekkürle...
Cevapla