我在我的 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(使用前将#替换为@)