DataTransfersPush.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Net;
  5. using System.Text;
  6. using System.Threading;
  7. using AutoMapper;
  8. using Newtonsoft.Json;
  9. using SysBaseLibs;
  10. using SysDataLibs.TableClass;
  11. namespace DataTransfersLibs
  12. {
  13. public static class DataTransfersPush
  14. {
  15. public static void DataPush(this List<CheckData_info> poCheckDatas)
  16. {
  17. bool lbRetval = SysDataLibs.AppEnv.SysSetObj.GetString("DataPushApiSwith") == "Y";
  18. if (lbRetval)
  19. {
  20. Thread createPost = new Thread(
  21. () =>
  22. {
  23. string lcSzytUrl = SysDataLibs.AppEnv.SysSetObj.GetString("DataPushApiUrl");
  24. List<CheckData> loCheckDatas = Mapper.Map<List<CheckData>>(poCheckDatas);
  25. string lcDataStr = JsonConvert.SerializeObject(loCheckDatas);
  26. //HttpPost(lcSzytUrl, lcDataStr);
  27. typeof(DataTransfersPush).LogInfo("数据推送START:" + lcDataStr);
  28. typeof(DataTransfersPush).LogInfo("数据推送END:" + HttpPost(lcSzytUrl, lcDataStr));
  29. });
  30. createPost.Start();
  31. }
  32. }
  33. private static string HttpPost(string pcUrl, string pcDataStr)
  34. {
  35. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pcUrl);
  36. request.Method = "POST";
  37. request.ContentType = "application/json";
  38. request.ContentLength = Encoding.UTF8.GetByteCount(pcDataStr);
  39. byte[] data = Encoding.UTF8.GetBytes(pcDataStr);
  40. request.ContentLength = data.Length;
  41. Stream newStream = request.GetRequestStream();
  42. newStream.Write(data, 0, data.Length);
  43. newStream.Close();
  44. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  45. Stream res = response.GetResponseStream();
  46. StreamReader resReader = new StreamReader(res ?? throw new InvalidOperationException(), Encoding.GetEncoding("utf-8"));
  47. string retString = resReader.ReadToEnd();
  48. resReader.Close();
  49. res.Close();
  50. return retString;
  51. }
  52. }
  53. }