| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Serialization;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Net.Http.Headers;
- using System.Text;
- using System.Threading.Tasks;
- namespace ddAlter.Tools
- {
- public class dingding
- {
- private readonly IHttpClientFactory _httpClientFactory;
- ///<summary>
- ///调用webhook
- ///</summary>
- ///<typeparamname="T"></typeparam>
- ///<param name="url">webhook地址</param>
- ///<param name="data">消息</param>
- ///<returns></returns>
- public static async Task SendWebhooks<T>(string url, T data) where T : class
- {
- JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() => new JsonSerializerSettings()
- {
- NullValueHandling = NullValueHandling.Ignore,
- ContractResolver = new CamelCasePropertyNamesContractResolver()
- });
- var jsonData = JsonConvert.SerializeObject(data);
- using (var httpClient = new HttpClient())
- {
- var content = new StringContent(jsonData);
- content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- var result = await httpClient.PostAsync(url, content);
- result.EnsureSuccessStatusCode();
- }
- }
- /// <summary>
- /// 执行发送消息
- /// </summary>
- /// <param name="sendMessage"></param>
- /// <returns></returns>
- public async Task<HttpResponseMessage> SendDingTalkMessage(string url, object value)
- {
- var sendMessage = JsonConvert.SerializeObject(value);
- var request = new HttpRequestMessage(HttpMethod.Post, url)
- {
- //钉钉文档需指定UTF8编码
- Content = new StringContent(sendMessage, Encoding.UTF8, "application/json")
- };
- var client = _httpClientFactory.CreateClient();
- var response = await client.SendAsync(request);
- return response;
- }
- }
- }
|