Beide scheinen unterschiedliche Wege zu sein, Antworten auf den Klienten zu handhaben.
Weitere Details zu meinem Problem: Ich habe einen Server, auf dem ich, wenn ich eine Anfrage von einem Client erhalte, einen zweiten Server anrufen und die Antwort von diesem zweiten Server an meinen Client zurücksenden möchte.
Sie dienen beide demselben Zweck.
HttpWebRequest
/ HttpWebResponse
sind seit der ersten Version von .NET verfügbar und sind immer noch ein vollkommen gültiger Ansatz. HttpClient
(die HttpRequestMessage
und HttpResponseMessage
für die Darstellung von Anforderungen und Antworten verwendet) wurde in .NET 4.5 eingeführt und bietet eine vollständig asynchrone API sowie ein neues Modell für den Inhalt von Anforderungen und Antworten; intern stützt es sich immer noch auf HttpWebRequest
/ HttpWebResponse
. Ein wichtiger Unterschied besteht darin, dass HttpWebRequest/Response
die Anforderung und die Antwort nur aus Clientsicht darstellt, während HttpRequestMessage/HttpResponseMessage
entweder von einem Client oder einem Server verwendet werden kann (die ASP.NET-Web-API verwendet diese Typen zur Kommunikation der Kunde).
Sie können diejenige verwenden, mit der Sie am meisten vertraut sind; Seien Sie sich jedoch bewusst, dass HttpClient
asynchron ist und der Code, der es verwendet, ebenfalls asynchron sein muss.
HttpResponseMessage
stellen einen modernen Weg dar, Http zu verwenden. Es wird von REST-Lösungen wie der Web-API verwendet, um den Statuscode und den Location-Header zu bearbeiten.
HttpWebResponse
ist eine alte Klasse, die alle Http-Informationen enthält, aber als obsolet gilt.
Tags und Links .net c# httpresponse