feat(core): 移除 IWechatClient.CreateRequest 方法

This commit is contained in:
Fu Diwei 2021-07-11 00:56:21 +08:00
parent 3e51875f7b
commit 6d215be045
3 changed files with 25 additions and 42 deletions

View File

@ -19,20 +19,5 @@ namespace SKIT.FlurlHttpClient.Wechat
/// </summary>
/// <param name="configure"></param>
public void Configure(Action<WechatClientSettings> configure);
/// <summary>
/// 使用当前客户端生成一个新的 <see cref="IFlurlRequest"/> 对象。
/// </summary>
/// <param name="urlSegments"></param>
/// <returns></returns>
IFlurlRequest CreateRequest(params object[] urlSegments);
/// <summary>
/// 使用当前客户端生成一个新的 <see cref="IFlurlRequest"/> 对象。
/// </summary>
/// <param name="method"></param>
/// <param name="urlSegments"></param>
/// <returns></returns>
IFlurlRequest CreateRequest(HttpMethod method, params object[] urlSegments);
}
}

View File

@ -75,33 +75,21 @@ namespace SKIT.FlurlHttpClient.Wechat
});
}
/// <inheritdoc/>
public IFlurlRequest CreateRequest(params object[] urlSegments)
{
return CreateRequest(HttpMethod.Get, urlSegments);
}
/// <inheritdoc/>
public IFlurlRequest CreateRequest(HttpMethod method, params object[] urlSegments)
{
return FlurlClient.Request(urlSegments).WithVerb(method);
}
/// <summary>
/// 异步发起请求。
/// </summary>
/// <param name="flurlRequest"></param>
/// <param name="content"></param>
/// <param name="httpContent"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
protected virtual async Task<IFlurlResponse> SendRequestAsync(IFlurlRequest flurlRequest, HttpContent? content = null, CancellationToken cancellationToken = default)
protected virtual async Task<IFlurlResponse> SendRequestAsync(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)
{
if (flurlRequest == null) throw new ArgumentNullException(nameof(flurlRequest));
var response = await flurlRequest
.WithClient(FlurlClient)
.AllowAnyHttpStatus()
.SendAsync(flurlRequest.Verb, content, cancellationToken)
.SendAsync(flurlRequest.Verb, httpContent, cancellationToken)
.ConfigureAwait(false);
return response;
}
@ -117,12 +105,22 @@ namespace SKIT.FlurlHttpClient.Wechat
{
if (flurlRequest == null) throw new ArgumentNullException(nameof(flurlRequest));
var response = await flurlRequest
if (flurlRequest.Verb == HttpMethod.Get)
{
return await flurlRequest
.WithClient(FlurlClient)
.AllowAnyHttpStatus()
.SendJsonAsync(flurlRequest.Verb, data, cancellationToken)
.SendAsync(flurlRequest.Verb, cancellationToken: cancellationToken)
.ConfigureAwait(false);
return response;
}
else
{
return await flurlRequest
.WithClient(FlurlClient)
.AllowAnyHttpStatus()
.SendJsonAsync(flurlRequest.Verb, data: data, cancellationToken: cancellationToken)
.ConfigureAwait(false);
}
}
/// <summary>

View File

@ -370,10 +370,10 @@ namespace SKIT.FlurlHttpClient.Wechat
// 比对请求谓词
string expectedMethod = regexApi.Groups[1].Value.Trim();
string expectedUrl = regexApi.Groups[2].Value.Split('?')[0].Trim();
string actualMethod = sourceCode.Contains($".{nameof(IWechatClient.CreateRequest)}(new HttpMethod(\"") ?
sourceCode.Split($".{nameof(IWechatClient.CreateRequest)}(new HttpMethod(\"")[1].Split("\"")[0] :
sourceCode.Contains($".{nameof(IWechatClient.CreateRequest)}(HttpMethod.") ?
sourceCode.Split($".{nameof(IWechatClient.CreateRequest)}(HttpMethod.")[1].Split(",")[0] :
string actualMethod = sourceCode.Contains(".CreateRequest(new HttpMethod(\"") ?
sourceCode.Split(".CreateRequest(new HttpMethod(\"")[1].Split("\"")[0] :
sourceCode.Contains(".CreateRequest(HttpMethod.") ?
sourceCode.Split(".CreateRequest(HttpMethod.")[1].Split(",")[0] :
string.Empty;
if (!string.Equals(expectedMethod, actualMethod, StringComparison.OrdinalIgnoreCase))
{
@ -383,8 +383,8 @@ namespace SKIT.FlurlHttpClient.Wechat
// 比对请求路由
string actualUrl = sourceCode
.Split($"{nameof(IWechatClient.CreateRequest)}(", StringSplitOptions.RemoveEmptyEntries)[1]
.Substring(sourceCode.Split($"{nameof(IWechatClient.CreateRequest)}(", StringSplitOptions.RemoveEmptyEntries)[1].Split(",")[0].Length + 1)
.Split("CreateRequest(", StringSplitOptions.RemoveEmptyEntries)[1]
.Substring(sourceCode.Split("CreateRequest(", StringSplitOptions.RemoveEmptyEntries)[1].Split(",")[0].Length + 1)
.Split('\n')[0]
.Trim()
.TrimEnd(')', ';')