using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace ZonyLrcTools.Cli.Infrastructure.Network
{
///
/// 基于 封装的 HTTP 请求客户端。
///
public interface IWarpHttpClient
{
///
/// 根据指定的配置执行 POST 请求,并以 作为返回值。
///
/// 请求的 URL 地址。
/// 请求的参数。
/// 是否以 QueryString 形式携带参数。
/// 请求时的配置动作。
/// 服务端的响应结果。
ValueTask PostAsync(string url,
object parameters = null,
bool isQueryStringParam = false,
Action requestOption = null);
///
/// 根据指定的配置执行 POST 请求,并将结果反序列化为 对象。
///
/// 请求的 URL 地址。
/// 请求的参数。
/// 是否以 QueryString 形式携带参数。
/// 请求时的配置动作。
/// 需要将响应结果反序列化的目标类型。
/// 服务端的响应结果。
ValueTask PostAsync(string url,
object parameters = null,
bool isQueryStringParam = false,
Action requestOption = null);
///
/// 根据指定的配置执行 GET 请求,并以 作为返回值。
///
/// 请求的 URL 地址。
/// 请求的参数。
/// 请求时的配置动作。
/// 服务端的响应结果。
ValueTask GetAsync(string url,
object parameters = null,
Action requestOption = null);
///
/// 根据指定的配置执行 GET 请求,并将结果反序列化为 对象。
///
/// 请求的 URL 地址。
/// 请求的参数。
/// 请求时的配置动作。
/// 需要将响应结果反序列化的目标类型。
/// 服务端的响应结果。
ValueTask GetAsync(
string url,
object parameters = null,
Action requestOption = null);
}
}