Skip to main content
.NETFramework4.6.2net8.0net9.0.NETStandard2.0

Provides a message handler for HttpClient based on the WinHTTP interface of Windows. While similar to HttpClientHandler, it provides developers more granular control over the application's HTTP communication than the HttpClientHandler. Commonly Used Types: System.Net.Http.WinHttpHandler

Published
Jan 14, 2025
1y ago
Total Downloads
190.4M
190,363,488

Install

dotnet add package System.Net.Http.WinHttpHandler --version 9.0.1
ProductVersions
.NET
net8.0net9.0
.NET Standard
netstandard2.0
Other
.NETFramework4.6.2

README

About

This package provides an HttpMessageHandler implementation backed by Windows HTTP Services (WinHTTP). While the use of the default HttpClientHandler is highly recommended for applications targeting modern .NET, WinHttpHandler might help migration scenarios by providing an alternative HTTP backend for Windows that works consistently accross .NET Framework and modern .NET.

Key Features

  • Enables sending asynchronous HTTP requests with HttpClient on Windows.
  • Handles authentication and credentials.
  • Exposes a subset of WinHTTP options as C# properties on WinHttpHandler.
  • Use custom proxy.
  • Handle cookies.

How to Use

using System.Net;

using WinHttpHandler handler = new()
{
    ServerCredentials = new NetworkCredential("usr", "pwd")
};

using HttpClient client = new(handler);
using HttpRequestMessage request = new(HttpMethod.Get, "https://httpbin.org/basic-auth/usr/pwd");
using HttpResponseMessage response = await client.SendAsync(request);

Console.WriteLine($"Status: {response.StatusCode}");
if (response.IsSuccessStatusCode)
{
    string content = await response.Content.ReadAsStringAsync();
    Console.WriteLine(content);
}

Main Types

The main types provided by this library are:

  • System.Net.Http.WinHttpHandler

Additional Documentation

Feedback & Contributing

System.Net.Http.WinHttpHandler is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Changes from Previous Version

No structural changes between v9.0.0 and v9.0.1.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

Compatibility metadata lists 4 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.