我正在嘗試開發使用Azure函數的以下方案。從Azure函數調用Asp.Net Web API端點
我開發了處理數據庫相關操作的Asp.Net Web API。現在,我想實現一個調度程序,比如每天運行一次的功能,並將清理數據庫中的垃圾數據。我已經在Web API中創建了一個端點,但我想定期執行它,所以我認爲要使用Azure函數的TimerTrigger函數來實現調度程序,有沒有辦法在TimerTrigger函數中調用我的web api的端點。
如何在Azure函數中處理我的api身份驗證?
感謝
更新:
基於米哈伊爾的答案,最後我用下面的代碼獲得令牌:
var client = new HttpClient();
client.BaseAddress = new Uri(apirooturl);
var grant_type = "password";
var username = "username";
var password = "password";
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("grant_type", grant_type),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password)
});
var token = client.PostAsync("token", formContent).Result.Content.ReadAsAsync<AuthenticationToken>().Result;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.token_type, token.access_token);
var response = await client.GetAsync(apiendpoint);
var content = await response.Content.ReadAsStringAsync();
如何/你是什麼添加引用,所以你可以使用'AuthenticationToken'?謝謝。 –
@SkorunkaFrantišek我添加了'使用System.Net.Http;',因爲它是'HttpClient'類的'DefaultRequestHeaders'屬性的一部分,我們可以在'System.Net.Http'命名空間下找到'HttpClient'。 – Rinkesh