Wie konvertiert man HttpRequestBase in HttpRequestMessage unter Berücksichtigung von Header-Namen?

8

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.

%Vor%

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?

    
Andrew Arnott 04.03.2013, 19:17
quelle

2 Antworten

13

Es stellt sich heraus, dass es ziemlich einfach ist. Dieses Snippet kommt stark von ASP.NET's eigenen Open Sources Quellcode .

%Vor%     
Andrew Arnott 05.03.2013, 23:20
quelle
1

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: Ссылка

    
Hongmei Ge 05.03.2013 08:09
quelle

Tags und Links