mirror of
https://github.com/KevinWG/OSS.Tools.git
synced 2026-10-20 07:48:27 +08:00
86 lines
2.8 KiB
C#
86 lines
2.8 KiB
C#
#region Copyright (C) 2016 Kevin (OSS开源系列) 公众号:osscore
|
||
|
||
/***************************************************************************
|
||
* 文件功能描述:Http请求辅助类
|
||
*
|
||
* 创建人: Kevin
|
||
* 创建人Email:1985088337@qq.com
|
||
*
|
||
* 修改日期:2017-2-12
|
||
* 修改内容:迁移至HttpClient框架下
|
||
*
|
||
*****************************************************************************/
|
||
|
||
#endregion
|
||
|
||
using System.Net.Http;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using OSS.Tools.Http.Mos;
|
||
|
||
namespace OSS.Tools.Http.Extention
|
||
{
|
||
/// <summary>
|
||
/// http请求辅助类
|
||
/// </summary>
|
||
public static class RestExtention
|
||
{
|
||
#region 扩展方法
|
||
|
||
/// <summary>
|
||
/// 发送请求
|
||
/// </summary>
|
||
/// <param name="request">请求的参数</param>
|
||
/// <param name="client"></param>
|
||
/// <returns>自定义的Response结果</returns>
|
||
public static Task<HttpResponseMessage> RestSend(this OssHttpRequest request, HttpClient client = null)
|
||
{
|
||
return RestSend(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None, client);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 发送请求
|
||
/// </summary>
|
||
/// <param name="request">请求的参数</param>
|
||
/// <param name="completionOption"></param>
|
||
/// <param name="client"></param>
|
||
/// <returns>自定义的Response结果</returns>
|
||
public static Task<HttpResponseMessage> RestSend(this OssHttpRequest request,
|
||
HttpCompletionOption completionOption, HttpClient client = null)
|
||
{
|
||
return RestSend(request, completionOption, CancellationToken.None, client);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 发送请求
|
||
/// </summary>
|
||
/// <param name="request">请求的参数</param>
|
||
/// <param name="completionOption"></param>
|
||
/// <param name="token"></param>
|
||
/// <param name="client"></param>
|
||
/// <returns>自定义的Response结果</returns>
|
||
public static Task<HttpResponseMessage> RestSend(this OssHttpRequest request,
|
||
HttpCompletionOption completionOption,
|
||
CancellationToken token,
|
||
HttpClient client = null)
|
||
{
|
||
return (client ?? GetDefaultClient()).RestSend(request, completionOption, token);
|
||
}
|
||
|
||
#endregion
|
||
|
||
private static HttpClient _Client=null;
|
||
/// <summary>
|
||
/// 配置请求处理类
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private static HttpClient GetDefaultClient()
|
||
{
|
||
if (_Client != null) return _Client;
|
||
|
||
var handler = new HttpClientHandler {UseProxy = false};
|
||
|
||
return _Client = new HttpClient(handler);
|
||
}
|
||
}
|
||
} |