#region Copyright (C) 2016 Kevin (OSS开源系列) 公众号:osscore
/***************************************************************************
* 文件功能描述:Http请求辅助类
*
* 创建人: Kevin
* 创建人Email:1985088337@qq.com
*
* 修改日期:2017-2-12
* 修改内容:迁移至HttpClient框架下
*
*****************************************************************************/
#endregion
namespace OSS.Tools.Http
{
///
/// http请求辅助类
///
public static class RestExtension
{
#region 扩展方法
///
/// 发送请求
///
/// 请求的参数
/// 如果设置 HttpClientHelper.HttpClientFactory,会在 CreateClient 时传入
/// 自定义的Response结果
public static Task SendAsync(this OssHttpRequest request, string? clientSourceName=null)
{
return SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None, clientSourceName);
}
///
/// 发送请求
///
/// 请求的参数
///
/// 如果设置 HttpClientHelper.HttpClientFactory,会在 CreateClient 时传入
/// 自定义的Response结果
public static Task SendAsync(this OssHttpRequest request,
HttpCompletionOption completionOption, string? clientSourceName = null)
{
return SendAsync(request, completionOption, CancellationToken.None, clientSourceName);
}
///
/// 发送请求
///
/// 请求的参数
///
///
/// 如果设置 HttpClientHelper.HttpClientFactory,会在 CreateClient 时传入
/// 自定义的Response结果
public static Task SendAsync(this OssHttpRequest request, HttpCompletionOption completionOption,
CancellationToken token, string? clientSourceName = null)
{
return HttpClientHelper.CreateClient(clientSourceName).SendAsync(request, completionOption, token);
}
#endregion
///
/// Post 请求
///
///
///
/// 如果设置 HttpClientHelper.HttpClientFactory,会在 CreateClient 时传入
///
public static Task PostAsync(this OssHttpRequest request,string body, string? clientSourceName = null)
{
request.http_method = HttpMethod.Post;
request.custom_body = body;
return request.SendAsync(clientSourceName);
}
///
/// Get 请求
///
///
/// 如果设置 HttpClientHelper.HttpClientFactory,会在 CreateClient 时传入
///
public static Task GetAsync(this OssHttpRequest request, string? clientSourceName = null)
{
request.http_method = HttpMethod.Get;
return request.SendAsync(clientSourceName);
}
}
}