#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); } } }