mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-04-05 17:37:54 +08:00
refactor(wxads)
This commit is contained in:
parent
6b31956d2a
commit
b59462b4d4
@ -1,26 +0,0 @@
|
||||
using System;
|
||||
using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
{
|
||||
internal static class FlurlHttpRequestOptionsExtensions
|
||||
{
|
||||
public static IFlurlRequest SetOptions(this IFlurlRequest request, WechatAdsRequest options)
|
||||
{
|
||||
if (request == null) throw new ArgumentNullException(nameof(request));
|
||||
if (options == null) throw new ArgumentNullException(nameof(options));
|
||||
|
||||
if (options.Timeout.HasValue)
|
||||
{
|
||||
request.WithTimeout(TimeSpan.FromMilliseconds(options.Timeout.Value));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(options.Version))
|
||||
{
|
||||
request.SetQueryParam("version", options.Version);
|
||||
}
|
||||
|
||||
return request;
|
||||
}
|
||||
}
|
||||
}
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "adcreatives", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "adcreatives", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdCreativesAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -45,8 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "adcreatives", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "adcreatives", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdCreativesUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -65,8 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "adcreatives", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "adcreatives", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.AdCreativeId.HasValue)
|
||||
@ -81,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.AdCreativesGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AdCreativesGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "adgroups", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "adgroups", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdGroupsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -45,8 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "adgroups", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "adgroups", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdGroupsUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -65,8 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "adgroups", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "adgroups", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.AdGroupId.HasValue)
|
||||
@ -81,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.AdGroupsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AdGroupsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -97,8 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "adgroups", "delete")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "adgroups", "delete")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdGroupsDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "ads", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "ads", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -45,8 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "ads", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "ads", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdsUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -65,8 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "ads", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "ads", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.AdId.HasValue)
|
||||
@ -81,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.AdsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AdsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -97,8 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "ads", "delete")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "ads", "delete")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdsDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
|
@ -24,8 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "advertiser", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "advertiser", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdvertiserAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -44,8 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "advertiser", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "advertiser", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AdvertiserUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -64,11 +62,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "advertiser", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "advertiser", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.AdvertiserGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AdvertiserGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "async_tasks", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "async_tasks", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.AsyncTasksAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -45,8 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "async_tasks", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "async_tasks", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.Filters != null && request.Filters.Any())
|
||||
@ -58,7 +56,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.AsyncTasksGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AsyncTasksGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
#region Files
|
||||
@ -75,13 +73,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "async_task_files", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "async_task_files", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken)
|
||||
.SetQueryParam("task_id", request.TaskId)
|
||||
.SetQueryParam("file_id", request.FileId);
|
||||
|
||||
return await client.SendRequestAsync<Models.AsyncTaskFilesGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.AsyncTaskFilesGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "campaigns", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "campaigns", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CampaignsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -45,8 +44,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "campaigns", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "campaigns", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CampaignsUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -65,8 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "campaigns", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "campaigns", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.CampaignId.HasValue)
|
||||
@ -81,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.CampaignsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.CampaignsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "credit_bills", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "credit_bills", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken)
|
||||
.SetQueryParam("bill_year", request.BillYear)
|
||||
.SetQueryParam("bill_month", request.BillMonth);
|
||||
@ -36,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.CreditBillsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.CreditBillsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,8 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "custom_audiences", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "custom_audiences", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CustomAudiencesAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -46,8 +45,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "custom_audiences", "update")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "custom_audiences", "update")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CustomAudiencesUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -66,8 +64,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "custom_audiences", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "custom_audiences", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.CustomAudienceId.HasValue)
|
||||
@ -79,7 +76,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.CustomAudiencesGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.CustomAudiencesGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
#region Files
|
||||
@ -102,16 +99,15 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
httpContent.Add(new StringContent(request.CustomAudienceId.ToString()), "audience_id");
|
||||
httpContent.Add(new StringContent(request.UserIdType), "user_id_type");
|
||||
httpContent.Add(new StringContent(request.OperationType), "operation_type");
|
||||
httpContent.Add(fileContent, "\"file\"", "\"" + filename + "\"");
|
||||
httpContent.Add(fileContent, "\"file\"", $"\"{filename}\"");
|
||||
httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary);
|
||||
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/zip");
|
||||
fileContent.Headers.ContentLength = request.FileBytes?.Length ?? 0;
|
||||
fileContent.Headers.ContentLength = request.FileBytes?.Length;
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "custom_audience_files", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "custom_audience_files", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.CustomAudienceFilesAddResponse>(flurlReq, content: httpContent, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestAsync<Models.CustomAudienceFilesAddResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -127,8 +123,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "custom_audience_files", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "custom_audience_files", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.CustomAudienceId.HasValue)
|
||||
@ -143,7 +138,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.CustomAudienceFilesGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.CustomAudienceFilesGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "estimation", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "estimation", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.EstimationGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
|
@ -24,8 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "fund_transfer", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "fund_transfer", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.FundTransferAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -44,11 +43,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "funds", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "funds", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.FundsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.FundsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -64,8 +62,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "fund_statements_detailed", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "fund_statements_detailed", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.DateRange != null)
|
||||
@ -80,7 +77,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.FundStatementsDetailedGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.FundStatementsDetailedGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,16 +33,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
|
||||
if (string.IsNullOrEmpty(request.FileContentType))
|
||||
{
|
||||
if (request.FileName!.EndsWith(".swf", StringComparison.OrdinalIgnoreCase))
|
||||
request.FileContentType = "application/x-shockwave-flash";
|
||||
else if (request.FileName!.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase))
|
||||
request.FileContentType = "image/jpeg";
|
||||
else if (request.FileName!.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase))
|
||||
request.FileContentType = "image/jpeg";
|
||||
else if (request.FileName!.EndsWith(".gif", StringComparison.OrdinalIgnoreCase))
|
||||
request.FileContentType = "image/gif";
|
||||
else
|
||||
request.FileContentType = "image/png";
|
||||
request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png";
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(request.FileHash))
|
||||
@ -53,16 +44,15 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
string boundary = "--BOUNDARY--" + DateTimeOffset.Now.Ticks.ToString("x");
|
||||
using var fileContent = new ByteArrayContent(request.FileBytes ?? new byte[0]);
|
||||
using var httpContent = new MultipartFormDataContent(boundary);
|
||||
httpContent.Add(fileContent, "\"file\"", "\"" + HttpUtility.UrlEncode(request.FileName) + "\"");
|
||||
httpContent.Add(fileContent, "\"file\"", $"\"{HttpUtility.UrlEncode(request.FileName)}\"");
|
||||
httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary);
|
||||
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.FileContentType);
|
||||
fileContent.Headers.ContentLength = request.FileBytes?.Length ?? 0;
|
||||
fileContent.Headers.ContentLength = request.FileBytes?.Length;
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "images", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "images", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.ImagesAddResponse>(flurlReq, content: httpContent, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestAsync<Models.ImagesAddResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -78,8 +68,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "images", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "images", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (!string.IsNullOrEmpty(request.ImageId))
|
||||
@ -94,7 +83,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.ImagesGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.ImagesGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "qualifications", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "qualifications", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.QualificationsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -44,11 +43,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "qualifications", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "qualifications", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.QualificationsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.QualificationsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -64,8 +62,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "qualifications", "delete")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "qualifications", "delete")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.QualificationsDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
|
@ -25,8 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "daily_reports", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "daily_reports", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
if (request.DateRange != null)
|
||||
@ -44,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Page.HasValue)
|
||||
flurlReq.SetQueryParam("page", request.Page.Value);
|
||||
|
||||
return await client.SendRequestAsync<Models.DailyReportsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.DailyReportsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -60,8 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "realtime_cost", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "realtime_cost", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken)
|
||||
.SetQueryParam("date", request.DateString)
|
||||
.SetQueryParam("level", request.Level);
|
||||
@ -69,7 +67,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request.Filters != null && request.Filters.Any())
|
||||
flurlReq.SetQueryParam("filtering", client.FlurlJsonSerializer.Serialize(request.Filters));
|
||||
|
||||
return await client.SendRequestAsync<Models.RealtimeCostGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.RealtimeCostGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Post, "sp_entrustment", "add")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Post, "sp_entrustment", "add")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.SpEntrustmentAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
@ -44,11 +43,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "sp_entrustment", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "sp_entrustment", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestAsync<Models.SpEntrustmentGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.SpEntrustmentGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,12 +25,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(HttpMethod.Get, "targeting_tags", "get")
|
||||
.SetOptions(request)
|
||||
.CreateRequest(request, HttpMethod.Get, "targeting_tags", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken)
|
||||
.SetQueryParam("type", request.TagType);
|
||||
|
||||
return await client.SendRequestAsync<Models.TargetingTagsGetResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.TargetingTagsGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Ads.Utilities
|
||||
{
|
||||
internal static class FileNameToContentTypeMapper
|
||||
{
|
||||
public static string? GetContentTypeForImage(string fileName)
|
||||
{
|
||||
string extension = Path.GetExtension(fileName ?? "/")?.ToLower() ?? string.Empty;
|
||||
switch (extension)
|
||||
{
|
||||
case ".swf":
|
||||
return "application/x-shockwave-flash";
|
||||
case ".jpg":
|
||||
case ".jpeg":
|
||||
return "image/jpeg";
|
||||
case ".gif":
|
||||
return "image/gif";
|
||||
case ".png":
|
||||
return "image/png";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -73,20 +73,44 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用当前客户端生成一个新的 <see cref="IFlurlRequest"/> 对象。
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="method"></param>
|
||||
/// <param name="urlSegments"></param>
|
||||
/// <returns></returns>
|
||||
public IFlurlRequest CreateRequest(WechatAdsRequest request, HttpMethod method, params object[] urlSegments)
|
||||
{
|
||||
IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method);
|
||||
|
||||
if (request.Timeout.HasValue)
|
||||
{
|
||||
flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(request.Version))
|
||||
{
|
||||
flurlRequest.SetQueryParam("version", request.Version);
|
||||
}
|
||||
|
||||
return flurlRequest;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步发起请求。
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="flurlRequest"></param>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="httpContent"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> SendRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? content = null, CancellationToken cancellationToken = default)
|
||||
public async Task<T> SendRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)
|
||||
where T : WechatAdsResponse, new()
|
||||
{
|
||||
try
|
||||
{
|
||||
using IFlurlResponse flurlResponse = await base.SendRequestAsync(flurlRequest, content, cancellationToken).ConfigureAwait(false);
|
||||
using IFlurlResponse flurlResponse = await base.SendRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);
|
||||
return await GetResposneAsync<T>(flurlResponse).ConfigureAwait(false);
|
||||
}
|
||||
catch (FlurlHttpException ex)
|
||||
|
Loading…
Reference in New Issue
Block a user