Ich versuche, die Web-APIs zu verwenden HttpClient
, um einen Beitrag an einem Endpunkt zu verfassen, für den eine Anmeldung in Form eines HTTP-Cookies erforderlich ist, das ein Konto identifiziert (dies ist nur etwas, #ifdef
das in der Release-Version enthalten ist).
Wie füge ich dem einen Cookie hinzu HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
George Mauer
quelle
quelle
Die akzeptierte Antwort ist in den meisten Fällen der richtige Weg, dies zu tun. Es gibt jedoch Situationen, in denen Sie den Cookie-Header manuell festlegen möchten. Wenn Sie einen "Cookie" -Header festlegen, wird dieser normalerweise ignoriert. Dies liegt jedoch daran, dass
HttpClientHandler
standardmäßig dieCookieContainer
Eigenschaft für Cookies verwendet wird. Wenn Sie dies deaktivieren, können Sie durch SetzenUseCookies
auffalse
Cookie-Header manuell festlegen, die in der Anforderung angezeigt werden, zquelle
Nachdem ich Stunden mit diesem Thema verbracht hatte, half mir keine der obigen Antworten, so dass ich ein wirklich nützliches Werkzeug fand.
Erstens habe ich Teleriks Fiddler 4 verwendet, um meine Webanfragen im Detail zu untersuchen
Zweitens bin ich auf dieses nützliche Plugin für Fiddler gestoßen:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Es wird nur der C # -Code für Sie generiert. Ein Beispiel war:
Beachten Sie, dass ich zwei Zeilen auskommentieren musste, da dieses Plugin noch nicht ganz perfekt ist, aber es hat trotzdem funktioniert.
HAFTUNGSAUSSCHLUSS: Ich bin weder mit Telerik noch mit dem Autor des Plugins verbunden oder unterstützt.
quelle
Für mich funktioniert die einfache Lösung, um Cookies im HttpRequestMessage- Objekt zu setzen.
quelle