Ich verpacke ein HttpRequestBase
als HttpRequestMessage
, was erfordert, dass alle Header kopiert werden. Da HttpRequestMessage
jedoch genau angibt, welche Header auf das Anforderungsobjekt im Vergleich zum Content-Objekt angewendet werden, wird in der Zeile httpRequest.Headers.Add
manchmal InvalidOperationException ausgelöst.
Natürlich möchte ich, dass mein Code keine Ausnahmen auslöst, sondern jede Überschrift dem entsprechenden Objekt entsprechend anwendet. Wie kann ich das vorhersagen? Gibt es eine Methode, die ich verwenden kann, um die Anwendbarkeit eines Headers zu testen, der kurz vor einem Header steht, der Ausnahmen generiert und abfängt?
Es stellt sich heraus, dass es ziemlich einfach ist. Dieses Snippet kommt stark von ASP.NET's eigenen Open Sources Quellcode .
%Vor%Sie sollten TryAddWithoutValidation anstelle von Add verwenden können, um das Werfen zu vermeiden. Sie müssen vorsichtig sein, ob Sie GetBufferlessStream aufrufen oder nicht, je nachdem, ob Sie die Anforderung zwischenspeichern möchten. Siehe ConvertRequest-Methode in der folgenden Klasse: Ссылка
Tags und Links asp.net httpclient