{
public class HttpClientHandler : HttpMessageHandler
{
+ static long groupCounter;
+
bool allowAutoRedirect;
DecompressionMethods automaticDecompression;
CookieContainer cookieContainer;
bool useProxy;
ClientCertificateOption certificate;
bool sentRequest;
+ HttpWebRequest wrequest;
public HttpClientHandler ()
{
protected override void Dispose (bool disposing)
{
- // TODO: ?
+ if (disposing && wrequest != null) {
+ wrequest.ServicePoint.CloseConnectionGroup (wrequest.ConnectionGroupName);
+ wrequest = null;
+ }
+
base.Dispose (disposing);
}
var wr = new HttpWebRequest (request.RequestUri);
wr.ThrowOnError = false;
- wr.ConnectionGroupName = "HttpClientHandler";
+ wr.ConnectionGroupName = "HttpClientHandler" + Interlocked.Increment (ref groupCounter);
wr.Method = request.Method.Method;
wr.ProtocolVersion = request.Version;
protected async internal override Task<HttpResponseMessage> SendAsync (HttpRequestMessage request, CancellationToken cancellationToken)
{
sentRequest = true;
- var wrequest = CreateWebRequest (request);
+ wrequest = CreateWebRequest (request);
if (request.Content != null) {
var headers = wrequest.Headers;