背景: 企微的图片三天有效,所以需要一个定时程序把快到期的图片又传一次到企微上面去
/// <summary>
/// 向企业微信临时素材提交数据
/// </summary>
/// <param name="requestUrl">企微的请求地址</param>
/// <param name="bmpBytes">图片字节流</param>
/// <param name="fileName">图片名称,下载的时候就展示的名字</param>
/// <returns>返回mediaid</returns>
public async Task<string> HttpClientPostFile(string requestUrl, byte[] bmpBytes, string fileName)
{
var _httpClient = _httpClientFactory.CreateClient();
var boundary = DateTime.Now.Ticks.ToString("X");
_httpClient.DefaultRequestHeaders.Remove("Expect");
_httpClient.DefaultRequestHeaders.Remove("Connection");
using (var content = new MultipartFormDataContent(boundary))
{
content.Headers.Remove("Content-Type");
content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=" + boundary);
using (var contentByte = new ByteArrayContent(bmpBytes))
{
content.Add(contentByte);
contentByte.Headers.Remove("Content-Disposition");
contentByte.Headers.TryAddWithoutValidation("Content-Disposition", $"form-data; name=\"media\";filename=\"{fileName}\"" + "");
contentByte.Headers.Remove("Content-Type");
contentByte.Headers.TryAddWithoutValidation("Content-Type", "image/png");
try
{
return await _httpClient.PostAsync(requestUrl, content).Result.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
return ex.Message;
}
}
}
}
_httpClientFactory 记得注入一下