RabbitMQMonitorDal.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Cksoft.Data;
  2. using Cksoft.Unity;
  3. using DllEapEntity.OFILM;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Net.Http;
  9. using System.Text;
  10. namespace DllEapDal.OFILM
  11. {
  12. public class RabbitMQMonitorDal
  13. {
  14. /// <summary>
  15. /// 通过接口获取队列的信息
  16. /// </summary>
  17. /// <param name="ip"></param>
  18. /// <param name="errorinfo"></param>
  19. /// <returns></returns>
  20. public IEnumerable<RabbitMQQueueDetail> GetQueueInfo(string ip, ref string errorinfo)
  21. {
  22. var url = $"http://{ip}:15672/api/queues";
  23. //var paras = new Dictionary<string, object>();
  24. //paras.Add("page", 1);
  25. //paras.Add("page_size", 10000);
  26. //paras.Add("pagination", true);
  27. //paras.Add("use_regex", false);
  28. //var queryString = string.Join("&", paras.Keys.Select(c => $"{c}={paras[c]}"));
  29. //url = url + "?" + queryString;
  30. HttpClient client = HttpClientFactory.Create();
  31. client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic",
  32. "YWRtaW46YWRtaW4=");
  33. client.DefaultRequestHeaders.Add("Host", $"{ip}:15672");
  34. HttpResponseMessage response = client.GetAsync(url).Result;
  35. IEnumerable<RabbitMQQueueDetail> info = null;
  36. if (response.IsSuccessStatusCode)
  37. {
  38. info = JsonConvert.DeserializeObject<IEnumerable<RabbitMQQueueDetail>>(response.Content.ReadAsStringAsync().Result);
  39. }
  40. return info;
  41. }
  42. }
  43. }