🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / CefSharp kullanımı url get isteği atmak ve html source almak

1-) C# RMOS - CefSharp kullanımı url get isteği atmak ve html source almak

 

 

1-) açıklama  : eğer sayfa yüklenmezse en fazla 5 saniye bekler

 

 

 public async Task<string> getDetayAsync(string url)

 {

 

 

 

     var loadTaskCompletionSource = new TaskCompletionSource<bool>();

 

     void OnLoadEnd(object sender, LoadingStateChangedEventArgs e)

     {

         // Sayfa yüklenmesi tamamlandığında tetiklenir

         if (!e.IsLoading && browser.CanExecuteJavascriptInMainFrame)

         {

             loadTaskCompletionSource.TrySetResult(true);

         }

     }

 

     try

     {

         browser.LoadingStateChanged += OnLoadEnd;

 

         browser.Load(url);

 

         if (await Task.WhenAny(loadTaskCompletionSource.Task, Task.Delay(5000)).ConfigureAwait(false) != loadTaskCompletionSource.Task)

         {

             return ("Sayfa yüklenmesi zaman aşımına uğradı.");

         }

 

         var isReady = await browser.EvaluateScriptAsync("document.readyState === 'complete'");

         if (!isReady.Success || !(isReady.Result is bool ready && ready))

         {

             return ("Sayfa tam yüklenemedi veya durum uygun değil.");

         }

 

         await Task.Delay(1000); // garanti olsun diye 1 saniye bekliyorum

 

 

         string htmlSource = await browser.GetSourceAsync();

         return WebUtility.HtmlDecode(htmlSource); // HTML içeriğini çözümle

     }

     catch (TimeoutException ex)

     {

         MessageBox.Show($"Sayfa yükleme zaman aşımına uğradı: {url}" + Environment.NewLine + ex.Message);

     }

     catch (Exception ex)

     {

         MessageBox.Show($"Sayfa yüklenirken hata oluştu: {url}. Detay: {ex.Message}" + Environment.NewLine + ex.Message);

     }

     finally

     {

         // Olay aboneliğini kaldır

         browser.LoadingStateChanged -= OnLoadEnd;

     }

 

     return "";

 }

 

 

 

 2025 Ocak 04 Cumartesi
 253