using MediaBrowser.Model.Logging;
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.ApiInteraction
{
///
/// Interface IHttpClient
///
public interface IAsyncHttpClient : IDisposable
{
///
/// Sets the authorization header that should be supplied on every request
///
///
void SetAuthorizationHeader(string header);
///
/// Gets the stream async.
///
/// The URL.
/// The logger.
/// The cancellation token.
/// Task{Stream}.
Task GetStreamAsync(string url, ILogger logger, CancellationToken cancellationToken);
///
/// Deletes the async.
///
/// The URL.
/// The logger.
/// The cancellation token.
/// Task.
Task DeleteAsync(string url, ILogger logger, CancellationToken cancellationToken);
///
/// Posts the async.
///
/// The URL.
/// Type of the content.
/// Content of the post.
/// The logger.
/// The cancellation token.
/// Task{Stream}.
Task PostAsync(string url, string contentType, string postContent, ILogger logger, CancellationToken cancellationToken);
}
}