我有一个私人类HttpClient
。我有一个DoRequest
方法来处理我所有的请求,并为内容/参数提供一个模板对象。到目前为止,我有2个电话。一个是检索一个令牌,另一个是获取其他信息(GetInfo)。我GetInfo
方法将需要授权头设置,所以我做这个调用DoRequest
前:HttpClient DefaultRequestHeaders授权异常
this.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
当我开始做一个Parallel.For
用于负载测试,我开始变得一An item with the same key has already been added
例外,有时。现在我明白,标题存储在字典中,这就是为什么我得到例外,但我正在寻找如何解决这个问题的想法,同时保留我的DoRequest
设计。我想解决这个问题的方法之一是在我的HttpContent
对象中设置标题,但是它存在于我的DoRequest
方法中,我现在需要将一个标记参数传递给它。我不是说这是世界上最糟糕的事情,但我们正在寻找替代品,如果有的话。
我不知道我是否可以异步信任,因为它可能不存在毫秒我检查,然后存在,当我尝试设置它。 – Pittfall
如果将整个支票包装在锁定语句中,则应该是线程安全的。我已经更新了我的答案以反映这一点。 –
我不这么认为,那将会使我的呼叫异步化。感谢您尝试提供帮助,但将令牌传递给我的“DoRequest”方法是IMO的更好解决方案。 – Pittfall