選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

137 行
5.1 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using System.Net.Http;
  6. using System.Net.Http.Headers;
  7. using RestSharp;
  8. namespace importer
  9. {
  10. public class RESTService
  11. {
  12. private string _baseUrl = Global.ServiceUrl;
  13. private HttpClient _httpClient;
  14. public string BaseUrl { get { return _baseUrl; } set { _baseUrl = value; } }
  15. public RESTService()
  16. {
  17. }
  18. public RESTService(string endPoint, Dictionary<string, string> parameters)
  19. {
  20. _baseUrl = _baseUrl + "/" + endPoint;
  21. foreach (KeyValuePair<string, string> kvp in parameters)
  22. {
  23. _baseUrl = _baseUrl + "/" + kvp.Key;
  24. if (!string.IsNullOrEmpty(kvp.Value))
  25. _baseUrl = _baseUrl + "/" + kvp.Value;
  26. }
  27. _httpClient = new HttpClient(new HttpClientHandler
  28. {
  29. UseCookies = true,
  30. CookieContainer = new System.Net.CookieContainer()
  31. })
  32. {
  33. BaseAddress = new Uri(_baseUrl),
  34. DefaultRequestHeaders = { Accept = { MediaTypeWithQualityHeaderValue.Parse("application/json") } }
  35. };
  36. }
  37. public string RestGet(string endpoint, Dictionary<string, string> parameters = null)
  38. {
  39. string url = _baseUrl + "/" + endpoint + '/';
  40. RestClient client = new RestClient(url);
  41. RestRequest request = new RestRequest(endpoint, Method.Get);
  42. request.AddHeader("Accept", "application/json");
  43. request.Method = Method.Get;
  44. RestResponse response = client.Execute(request);
  45. return response.Content;
  46. }
  47. public T RestGet<T>(bool single, string endpoint, Dictionary<string, string> parameters = null)
  48. {
  49. RESTResponse<T> rest = new RESTResponse<T>();
  50. string url = _baseUrl + "/" + endpoint + "/";
  51. if (parameters != null)
  52. {
  53. foreach (KeyValuePair<string, string> kvp in parameters)
  54. {
  55. url = url + kvp.Key + "/" + kvp.Value;
  56. }
  57. }
  58. RestClient client = new RestClient(url);
  59. RestRequest request = new RestRequest();
  60. request.AddHeader("Accept", "application/json");
  61. request.Method = Method.Get;
  62. RestResponse response = client.Execute(request);
  63. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  64. return rest.data;
  65. }
  66. public T PostRest<T>(string json, string endpoint)
  67. {
  68. RESTResponse<T> rest = new RESTResponse<T>();
  69. string url = _baseUrl + "/" + endpoint + "/";
  70. RestClient client = new RestClient(url);
  71. Console.WriteLine();
  72. Console.WriteLine();
  73. Console.WriteLine();
  74. Console.WriteLine(json);
  75. RestRequest request = new RestRequest();
  76. request.Method = Method.Post;
  77. request.RequestFormat = DataFormat.Json;
  78. request.AddBody(json);
  79. request.AddHeader("Accept", "application/json");
  80. RestResponse response = client.Execute(request);
  81. Console.WriteLine();
  82. Console.WriteLine();
  83. Console.WriteLine(response.Content);
  84. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  85. return rest.data;
  86. }
  87. public T PostRest<T>(string json, string endpoint, Dictionary<string, string> parameters)
  88. {
  89. RESTResponse<T> rest = new RESTResponse<T>();
  90. string url = _baseUrl + "/" + endpoint + "/";
  91. foreach (KeyValuePair<string, string> kvp in parameters)
  92. {
  93. url = url + kvp.Key + "/" + kvp.Value;
  94. }
  95. RestClient client = new RestClient(url);
  96. RestRequest request = new RestRequest(url, Method.Post);
  97. request.AddBody(json);
  98. request.AddHeader("Accept", "application/json");
  99. RestResponse response = client.Execute(request);
  100. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  101. return rest.data;
  102. }
  103. public List<T> RestGet<T>(string endpoint, Dictionary<string, string> parameters = null)
  104. {
  105. RESTResponse<List<T>> rest = new RESTResponse<List<T>>();
  106. string url = _baseUrl + "/" + endpoint + "/";
  107. if (parameters != null)
  108. {
  109. foreach (KeyValuePair<string, string> kvp in parameters)
  110. {
  111. url = url + kvp.Key + "/" + kvp.Value;
  112. }
  113. }
  114. RestClient client = new RestClient(url);
  115. RestRequest request = new RestRequest();
  116. request.Method = Method.Get;
  117. request.AddHeader("Accept", "application/json");
  118. request.Method = Method.Get;
  119. RestResponse response = client.Execute(request);
  120. rest = Deserialize.FromJson<RESTResponse<List<T>>>(response.Content);
  121. List<T> list = new List<T>();
  122. list.AddRange(rest.data);
  123. return list;
  124. }
  125. }
  126. }