Ich habe eine Klasse, die eine private HttpClient
hat. Ich habe eine DoRequest
Methode, die alle meine Anfragen behandelt und ein Vorlagenobjekt für den Inhalt/die Parameter nimmt. Bisher habe ich 2 Anrufe. Eine besteht darin, ein Token abzurufen, und eine andere, um andere Informationen zu erhalten (GetInfo). meine GetInfo
Methode wird die Autorisierungsheader festlegen muß, so kann ich dies vor DoRequest
Aufruf:HttpClient DefaultRequestHeaders Berechtigung Ausnahme
this.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
Sobald ich ein Parallel.For
für einen Belastungstest machen begann, beginne ich eine An item with the same key has already been added
Ausnahme bekommen, manchmal. Jetzt verstehe ich, dass die Überschriften in einem Wörterbuch gespeichert werden, und deshalb bekomme ich die Ausnahme, aber ich suche nach Ideen, wie man das löst, während ich meinen DoRequest
Entwurf behalte. Ich denke, ein Weg, um es zu lösen, ist die Kopfzeile in meinem HttpContent
Objekt, aber das lebt in meiner DoRequest
Methode, und ich würde jetzt einen Token-Parameter übergeben müssen. Ich sage nicht, dass das das Schlimmste auf der Welt ist, aber ich suche nach Alternativen, falls welche existieren.
Ich weiß nicht, ob ich das asynchron vertrauen kann, weil es nicht die Millisekunde existieren kann ich überprüfen, und dann gibt es recht, wenn ich versuche, es zu setzen. – Pittfall
Wenn Sie Ihren gesamten Scheck in eine Lock-Anweisung schreiben, sollten Sie threadsicher sein. Ich habe meine Antwort aktualisiert, um dies zu berücksichtigen. –
Ich denke nicht, das würde den ganzen Punkt zerstören, meine Anrufe asynchron zu machen. Danke, dass Sie versuchen zu helfen, aber das Token an meine 'DoRequest' Methode zu übergeben, ist die bessere Lösung IMO. – Pittfall