File: Tasks\Http\DefaultHttpClient.cs
Web Access
Project: src\src\sdk\src\WebSdk\Publish\Tasks\Microsoft.NET.Sdk.Publish.Tasks.csproj (Microsoft.NET.Sdk.Publish.Tasks)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Net.Http;
using System.Net.Http.Headers;

namespace Microsoft.NET.Sdk.Publish.Tasks;

internal class DefaultHttpClient : IHttpClient, IDisposable
{
    private readonly HttpClient _httpClient = new()
    {
        Timeout = Timeout.InfiniteTimeSpan
    };

    /// <inheritdoc/>
    public HttpRequestHeaders DefaultRequestHeaders => _httpClient.DefaultRequestHeaders;

    /// <inheritdoc/>
    public Task<HttpResponseMessage> PostAsync(Uri uri, StreamContent content)
    {
        return _httpClient.PostAsync(uri, content);
    }

    /// <inheritdoc/>
    public Task<HttpResponseMessage> GetAsync(Uri uri, CancellationToken cancellationToken)
    {
        return _httpClient.GetAsync(uri, cancellationToken);
    }

    /// <inheritdoc/>
    public Task<HttpResponseMessage> PutAsync(Uri uri, StreamContent content, CancellationToken cancellationToken)
    {
        return _httpClient.PutAsync(uri, content, cancellationToken);
    }

    /// <inheritdoc/>
    public void Dispose()
    {
        _httpClient.Dispose();
    }
}