延遲呼叫或多次呼叫第三方的Web API服務

2022-01-18 23:39:17 字數 1622 閱讀 5155

當我們呼叫第三方的web api服務的時候,不一定每次都是成功的。這時候,我們可能會再多嘗試幾次,也有可能延遲一段時間再去嘗試呼叫服務。

task的靜態方法delay允許我們延遲執行某個task,此方法可以讓我們做到延遲一段時間再去呼叫服務;多嘗試幾次呼叫如何實現呢?可以用迴圈遍歷。

在"使用httpclient對asp.net web api服務實現增刪改查"中,建立了乙個asp.net web api專案,本篇沿用此web api服務。

在asp.net web api專案的同乙個解決方案下建立乙個控制台應用程式。

依次點選"工具","庫程式包管理器","程式包管理器控制台",輸入如下:

install-package microsoft.aspnet.webapi.client

注意:是為新的控制台專案新增包,在"預設專案"選項下要選擇剛建立的控制台專案,並且把它設定為啟動專案。

首先使用task的delay方法,來做乙個簡單的試驗。

static void main(string args)
static async task<

t> delayresult<

t>(t result, timespan delay)

static int getsth(int a)
結果發現,的確是延遲呼叫了task,顯示結果的時候有延遲。

然後使用httpclient來呼叫web api服務,寫2個方法,乙個方法嘗試4次,一秒鐘後重試,然後2秒鐘後重試,再然後4秒鐘後重試,最後再嘗試一次;另外乙個方法嘗試2次,嘗試一次後,再隔一段時間嘗試。

static void main(string args)
//嘗試4次,一秒鐘後重試,然後2秒鐘後重試,再然後4秒鐘後重試,最後嘗試一次
static async task<

string

> downloadstringwithretries(string uri)

catch
await task.delay(nextdelay);
nextdelay = nextdelay + nextdelay;
}
//最後再試一次
return await client.getstringasync(uri);
}
}
//嘗試2次,嘗試一次後,再隔一段時間嘗試
static async task<

第三方平台API呼叫

其實都遵守乙個協議,一直想寫篇總結來著,突然對著螢幕就沒什麼好說的了 就是兩點,第一獲取令牌,第二用令牌去換取資訊 第一次多用key或者key srect,得到的是token 第二次 用token去呼叫令牌 傳送的請求有2中,post get 罷了其實這就是精髓 第一獲取令牌,第二用令牌去換取資訊 ...

android呼叫第三方庫

把第三方so放在新建的libs armeabi 中 因為android.mk檔案中的當前目錄跳到local path call my dir 即jni下,所以這個libs armeabi必須在jni下 android.mk local path call my dir warning local p...

Qt 呼叫第三方庫

一 製作動態庫c 動態庫 c 生成dll,專案名稱mydll 件 ifndef mdll h define mdll h ifdef mylibdll define mylibdll extern c declspec dllimport else define mylibdll extern c ...