gpt4 book ai didi

c# - 设置 `BaseAddress` 的 `HttpClient` 属性有什么好处

转载 作者:行者123 更新时间:2023-11-30 16:41:38 26 4
gpt4 key购买 nike

我们在项目中使用HttpClient 调用多个域的多个API。我正在创建一个通用的 HttpClient 以用于所有这些 API 调用。我对实现这个的两种方法感到困惑:

  1. HttpClient 创建一个单例类,并通过在 get/post/put 方法中传递 API URI 将其用于每次调用。
  2. HttpClientHandler 创建一个单例类,它将在所有 HttpClient 之间共享,并通过设置 为每个域创建一个 HtppClient >BaseAddress 属性。现在我们可以通过在 get/post/put 方法中传递相对路径来调用 API。

哪种方法更好?

预设 BaseAddress 有什么好处吗?如果没有,为什么提供此属性?

最佳答案

如果您选择选项 1,当然不应该使用 BaseAddress,因为您会不断覆盖它并且您必须避免两个线程在其中一个线程更新之前更新它发送请求的机会。

如果选择选项 2,则可以为每个 API 配置一次 HttpClient(例如,从配置文件中读取 BaseAddressTimeout ).然后可以提供相对 uri,而无需为每个请求添加基地址。

我猜哪个更好取决于您是否希望能够为所有 API(选项 1)或每个 API(选项2),我没有明确的“这个更好”的答案。

关于c# - 设置 `BaseAddress` 的 `HttpClient` 属性有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48339007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com