То, что вы сделали, должно отлично подойти для одного раза.Если вы хотите быть действительно надёжным в этом отношении, чтобы это выглядело как первоклассная функциональность Flurl, вы можете воспользоваться шаблоном расширяемости и добавить следующие методы расширения:
public static class MultipartPutExtensions
{
public static Task<HttpResponseMessage> PutMultipartAsync(this IFlurlRequest request, Action<CapturedMultipartContent> buildContent, CancellationToken cancellationToken = default(CancellationToken))
{
var cmc = new CapturedMultipartContent(request.Settings);
buildContent(cmc);
return request.SendAsync(HttpMethod.Put, cmc, cancellationToken);
}
public static Task<HttpResponseMessage> PutMultipartAsync(this Url url, Action<CapturedMultipartContent> buildContent, CancellationToken cancellationToken = default(CancellationToken))
{
return new FlurlRequest(url).PutMultipartAsync(buildContent, cancellationToken);
}
public static Task<HttpResponseMessage> PutMultipartAsync(this string url, Action<CapturedMultipartContent> buildContent, CancellationToken cancellationToken = default(CancellationToken))
{
return new FlurlRequest(url).PutMultipartAsync(buildContent, cancellationToken);
}
}
Они моделируются напрямуюпосле PostMultipartAsync
реализаций .