Consuming web services using HTTP clients
The easiest way to consume a web service is to use the
HttpClient class. However, many people use it wrongly because it implements
IDisposable and Microsoft’s own documentation shows poor usage of it. See the book links in the GitHub repository for articles with more discussion of this.
Usually, when a type implements
IDisposable, you should create it inside a
using statement to ensure that it is disposed of as soon as possible.
HttpClient is different because it is shared, reentrant, and partially thread-safe.
The problem has to do with how the underlying network sockets must be managed. The bottom line is that you should use a single instance of it for each HTTP endpoint that you consume during the life of your application. This will allow each...