簡體   English   中英

自動重試System.Net.Http.HttpClient

[英]Automatic retry for the System.Net.Http.HttpClient

我知道實體框架具有“連接彈性和重試邏輯”機制,可用於不可靠的網絡。

System.Net.Http.HttpClient也有這樣的事情嗎? 因此,這是一種自動重試機制,因此當連接丟失或發生超時時,它將重試x次。

那可能嗎?

據我了解,還沒有這種機制。 但是您可以編寫一個事件,並在所有x毫秒內檢查連接性。 喜歡

public class CheckInternet
{
    public CheckInternet()
    {
        Timer t1 = new Timer();
        t1.Interval = 1000;
        t1.Tick += T1_Tick;
        t1.Start();
    }

    private void T1_Tick(object sender, EventArgs e)
    {
        var ping = new System.Net.NetworkInformation.Ping();
        var result = ping.Send("www.google.com");
        if (result.Status != System.Net.NetworkInformation.IPStatus.Success)
        {
            // Your code to reconnect here
        }
    }
    public event EventHandler CheckConnectivity;
    private void OnCheckConnectivity()
    {
        CheckConnectivity?.Invoke(this, new EventArgs());
    }
}

現在,將其實現為其他類使用

CheckInternet cki = new CheckInternet();
cki.CheckConnectivity += new cki_CheckConnectivity;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM