Код: Выделить всё
public sealed class XYZProxyHandler:DelegatingHandler
{
private string _var1;
private string _var2;
protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var token = request.Headers.GetCookies().FirstOrDefault().Cookies.FirstOrDefault(x => x.Name.ToLower() == "access_token").Value;
_var1 = GetVar1(token);
_var2 = GetVar2(token);
В приведенном выше примере кода в идеале _var1 и _var2 должны получать значения свой собственный запрос, но по какой-то причине они иногда получают значения другого запроса.
У меня есть случаи, когда _var1 получает значение другого запроса, а _var2 получает значение своего собственного запроса, и наоборот.
Я уже сталкивался с подобным поведением, когда статическая переменная используется совместно всеми запросами, но это не статические переменные, и поэтому я не уверен, как это может произойти или связано ли это как-то с Реализация DelegatingHandler.
Я пытался протестировать ее, но не воспроизвел, и работаю над тем же самым с большим количеством вариантов тестовых данных, и это происходит, возможно, 50 раз в месяц. поэтому не очень часто.
Я не уверен, что у меня туннельное зрение и я не вижу чего-то очевидного или бросающегося в глаза.
Подробнее здесь: https://stackoverflow.com/questions/563 ... r-requests