using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Net.Http; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Security.Cryptography; using System.Net.Http.Json; using System.Text.Json; using System.IO; using TEAMModelOS.SDK.Extension; using System.Net; namespace TEAMModelOS.SDK.DI { public class HttpTrigger { private readonly HttpClient _httpClient; public HttpTrigger(HttpClient httpClient) { _httpClient = httpClient; } // /// 请求信息 /// /// 釘釘Robot發送Url /// 加簽密鑰 /// 發送訊息 /// public async Task<(int status,string json)> RequestHttpTrigger(object data, string location,string url) { var keys = HttpTriggerUrl.HttpTrigger地址.GetDescriptionText().Split(','); string domain = ""; if (location.Equals("China-Dep")) { domain = keys[0]; } else if (location.Equals("China-Test")) { domain = keys[1]; } else if (location.Equals("China")) { domain = keys[2]; } else if (location.Equals("Global-Dep")) { domain = keys[4]; } else if (location.Equals("Global-Test")) { domain = keys[4]; } else if (location.Equals("Global")) { domain = keys[5]; } string link = domain.Contains("localhost") ? $"http://{domain}/api/{url}" : $"https://{domain}/api/{url}"; HttpResponseMessage responseMessage =await _httpClient.PostAsJsonAsync(link, data); if (responseMessage.StatusCode == HttpStatusCode.OK) { string Content= await responseMessage.Content.ReadAsStringAsync(); Content.ToObject().TryGetProperty("data", out JsonElement content); return (200, $"{content}"); } else { string Content = await responseMessage.Content?.ReadAsStringAsync(); return (500, Content); } } } public enum HttpTriggerUrl { [Description("localhost:7071,teammodelosfunction-test.chinacloudsites.cn,teammodelosfunction.chinacloudsites.cn,teammodelosfunction.chinacloudsites.cn,teammodelosfunction.chinacloudsites.cn")] HttpTrigger地址, } }