[英]Calling multiple httpclient that contain two different base address
為了實現我的最終目標,我已經閱讀了命名客戶和打字客戶。 但是,我仍然不明白我需要如何實施 or 。 我有一個 blazor 服務器端項目,在 startup.cs 文件中我將它設置為
services.AddSingleton(sp => new HttpClient { BaseAddress = new Uri("http://localhost:36626") });
services.AddSingleton(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5443") });
我知道如果我這樣做,第一個的基地址將被完全覆蓋,並且由於第二個基地址而不再是設置的基地址。 我將如何進行這項工作,以便我有兩個單獨的 httpclients,它們將有兩個單獨的基地址,而不必因為最新的代碼行而丟失一個?
正如文檔中所說,主要區別在於您將如何通過依賴注入獲取實例。
使用命名客戶端,您需要注入工廠,然后通過字符串獲取客戶端。
var client = _clientFactory.CreateClient("github");
使用Typed Client,您可以注入所需的客戶端作為類型。
//GitHubService encapsulate an HTTP client
public TypedClientModel(GitHubService gitHubService)
{
_gitHubService = gitHubService;
}
他們都為您的問題提供了解決方案。 選擇更多的是您對每個依賴注入方法的適應程度。 我個人更喜歡 Typed 客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.