簡體   English   中英

調用包含兩個不同基地址的多個 httpclient

[英]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.

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