refactor(tenpayv3): 优化代码

This commit is contained in:
Fu Diwei 2021-06-03 10:34:07 +08:00
parent 02d2b9469e
commit 11e7bee23b
5 changed files with 14 additions and 5 deletions

View File

@ -0,0 +1,9 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Constants
{
internal static class FormDataFields
{
public const string FORMDATA_META = "meta";
}
}

View File

@ -51,7 +51,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
using var fileContent = new ByteArrayContent(request.FileBytes);
using var metaContent = new ByteArrayContent(Encoding.UTF8.GetBytes(client.JsonSerializer.Serialize(request)));
using var httpContent = new MultipartFormDataContent(boundary);
httpContent.Add(metaContent, "\"meta\""); // NOTICE: meta 必须要加双引号
httpContent.Add(metaContent, "\"" + Constants.FormDataFields.FORMDATA_META + "\""); // NOTICE: meta 必须要加双引号
httpContent.Add(fileContent, "\"file\"", "\"" + request.FileName + "\""); // NOTICE: file 必须要加双引号
httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary); // NOTICE: boundary 不能加引号
metaContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

View File

@ -51,7 +51,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
using var fileContent = new ByteArrayContent(request.FileBytes);
using var metaContent = new StringContent(client.JsonSerializer.Serialize(request), Encoding.UTF8, "application/json");
using var httpContent = new MultipartFormDataContent(boundary);
httpContent.Add(metaContent, "\"meta\""); // NOTICE: meta 必须要加双引号
httpContent.Add(metaContent, "\"" + Constants.FormDataFields.FORMDATA_META + "\""); // NOTICE: meta 必须要加双引号
httpContent.Add(fileContent, "\"file\"", "\"" + request.FileName + "\""); // NOTICE: file 必须要加双引号
httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary); // NOTICE: boundary 不能加引号
metaContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

View File

@ -262,7 +262,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
using var fileContent = new ByteArrayContent(request.FileBytes);
using var metaContent = new ByteArrayContent(Encoding.UTF8.GetBytes(client.JsonSerializer.Serialize(request)));
using var httpContent = new MultipartFormDataContent(boundary);
httpContent.Add(metaContent, "\"meta\""); // NOTICE: meta 必须要加双引号
httpContent.Add(metaContent, "\"" + Constants.FormDataFields.FORMDATA_META + "\""); // NOTICE: meta 必须要加双引号
httpContent.Add(fileContent, "\"file\"", "\"" + request.FileName + "\""); // NOTICE: file 必须要加双引号
httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary); // NOTICE: boundary 不能加引号
metaContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

View File

@ -33,10 +33,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Interceptors
if (flurlCall.HttpRequestMessage.Content is MultipartFormDataContent)
{
// NOTICE: multipart/form-data 文件上传请求的待签名参数需特殊处理
// NOTICE: multipart/form-data 文件上传请求的待签名参数需特殊处理
var httpContent = (MultipartFormDataContent)flurlCall.HttpRequestMessage.Content;
body = httpContent
.Where(e => "meta".Equals(e.Headers.ContentDisposition?.Name?.Trim('\"')))
.Where(e => Constants.FormDataFields.FORMDATA_META.Equals(e.Headers.ContentDisposition?.Name?.Trim('\"')))
.Select(e => e.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult())
.Single();
}