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