#region Copyright (C) 2016 Kevin (OSS开源系列) 公众号:osscore
/***************************************************************************
* 文件功能描述:Http请求 == 请求实体
*
* 创建人: Kevin
* 创建人Email:1985088337@qq.com
*
*****************************************************************************/
#endregion
namespace OSS.Tools.Http
{
///
/// 请求实体
///
public class OssHttpRequest
{
///
/// 请求构造函数
///
public OssHttpRequest()
{
}
///
/// 请求构造函数
///
/// 请求地址
public OssHttpRequest(string reqUrl)
{
address_url = reqUrl;
}
///
/// 请求构造函数
///
/// 请求地址
/// 请求方式
public OssHttpRequest(string reqUrl,HttpMethod httpMethod)
{
address_url = reqUrl;
http_method = httpMethod;
}
///
/// 如果此值设置
///
public string address_url { get; set; } = string.Empty;
///
/// 请求方式,默认 Get 请求
///
public HttpMethod http_method { get; set; } = HttpMethod.Get;
///
/// 自定义内容实体
/// eg:当上传文件时,无法自定义内容
///
public string? custom_body { get; set; }
///
/// 准备发送执行
///
[Obsolete("请使用 PrepareSendAsync() 方法代替, 3.0 版本之后不再支持")]
protected internal virtual void PrepareSend() //(HttpRequestMessage httpRequestMessage)
{
}
///
/// 发送执行
///
[Obsolete("请使用 OnSendingAsync() 方法代替, 3.0 版本之后不再支持")]
protected internal virtual void OnSending(HttpRequestMessage httpRequestMessage) //(HttpRequestMessage httpRequestMessage)
{
}
///
/// 准备发送执行
///
protected internal virtual Task PrepareSendAsync() //(HttpRequestMessage httpRequestMessage)
{
return Task.CompletedTask;
}
///
/// 发送执行
///
protected internal virtual Task OnSendingAsync(HttpRequestMessage httpRequestMessage) //(HttpRequestMessage httpRequestMessage)
{
return Task.CompletedTask;
}
#region 请求的内容参数
internal string? HeaderAuthorization;
internal List? FileParameters;
internal List? FormParameters;
///
/// 文件参数列表
///
public IReadOnlyList? file_paras => FileParameters;
///
/// 非文件参数列表
///
public IReadOnlyList? form_paras => FormParameters; // 兼容老版本,取值时默认赋值
#endregion
}
public static class OssHttpRequestExtension
{
///
/// 添加文件
///
///
///
public static OssHttpRequest AddFilePara(this OssHttpRequest req,FileParameter file)
{
req.FileParameters ??= new List();
req.FileParameters.Add(file);
return req;
}
///
/// 添加表单参数
///
///
///
///
public static OssHttpRequest AddFormPara(this OssHttpRequest req, string name, object value)
{
req.FormParameters ??= new List();
req.FormParameters.Add(new NameValuePair(name, value));
return req;
}
///
/// 设置头部授权信息
///
public static OssHttpRequest WithHeaderAuthorization(this OssHttpRequest req, string authorizationValue)
{
req.HeaderAuthorization=authorizationValue;
return req;
}
}
}