What's the difference between HttpResponseMessage and HttpWebResponse?

.net, c#, httpresponse

Solution

They both serve the same purpose.

- `HttpWebRequest`/`HttpWebResponse` are available since the first version of .NET, and are still a perfectly valid approach.

- `HttpClient` (which uses `HttpRequestMessage` and `HttpResponseMessage` to represent requests and responses) has been introduced in .NET 4.5, and offers a fully asynchronous API, along with a new model for request and response content; internally, it still relies on `HttpWebRequest`/`HttpWebResponse`.

An important difference is that `HttpWebRequest/Response` represent the request and response from a client point of view only, whereas `HttpRequestMessage/HttpResponseMessage` can be use by either a client or a server (ASP.NET Web API uses these types to communicate with the client).

You can use the one you're most comfortable with; just be aware that since `HttpClient` is asynchronous, the code that uses it must be asynchronous as well.

Problem

They both seem to be different ways of handling responses to the client. More detail about my problem: I have a server in which when I receive a request from a client I want to call a second server and return the response from that second server to my client.

Original source