我的 HttpClient 单例实现是否合适? [关闭]

2023-12-24

我在我的 MVC4 项目中使用 System.Net.HttpClient (.Net 4.5)。我知道 HttpClient 的单个实例可用于 Web 应用程序中的所有 Http 请求。这是我对 HttpClient 单例的实现,它每次都应该返回单个实例。

 public sealed class HttpClientInstance: HttpClient
{
    // singleton instance
    private static readonly HttpClientInstance instance = new HttpClientInstance();

    static HttpClientInstance() { }

    private HttpClientInstance() : base() {
        Timeout = TimeSpan.FromMilliseconds(15000)));
    }
    /// <summary>
    /// Returns the singleton instance of HttpClient
    /// </summary>
    public static HttpClient Instance
    {
        get
        {
            return instance;
        }
    }
}

您认为这有什么问题吗?

我知道我可以使用 Ninject 在单例范围内注入依赖项,但这不是重点。


有一些属性在发出第一个请求后就无法更改。我认为超时可能是其中之一,所以要注意这一点。

您还需要注意,单个请求不要与 DefaultRequestHeaders 混淆,因为这可能会混淆其他请求。

尝试共享 HttpClient 实例始终是一个好主意。创建单例是一种极端的情况,但只要小心,它应该可以很好地为您工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 HttpClient 单例实现是否合适? [关闭] 的相关文章

随机推荐