LottoModel.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System.Text;
  2. using System.Text.Json;
  3. namespace economy.Models.Lotto
  4. {
  5. public class LottoModel
  6. {
  7. private readonly DhlotteryCoKR _dhlotteryCoKR;
  8. public LottoModel(DhlotteryCoKR dhlotteryCoKR)
  9. {
  10. _dhlotteryCoKR = dhlotteryCoKR;
  11. }
  12. // 로또 당첨 번호 조회
  13. public async Task<Response> GetLottoNumber(Request request)
  14. {
  15. Response parseData = new();
  16. try
  17. {
  18. var uriBuilder = new UriBuilder(_dhlotteryCoKR.APIUrl)
  19. {
  20. Path = "/common.do",
  21. Query = $"method=getLottoNumber&drwNo={request.Number}"
  22. };
  23. var response = await _dhlotteryCoKR.httpClient.GetAsync(uriBuilder.Uri);
  24. if (response.IsSuccessStatusCode)
  25. {
  26. var bytes = await response.Content.ReadAsByteArrayAsync();
  27. var jsonString = Encoding.GetEncoding("euc-kr").GetString(bytes);
  28. parseData = JsonSerializer.Deserialize<Response>(jsonString);
  29. if (parseData is null)
  30. {
  31. return new Response();
  32. }
  33. }
  34. response.EnsureSuccessStatusCode();
  35. }
  36. catch (HttpRequestException e)
  37. {
  38. Console.WriteLine($"Request error: {e.Message}");
  39. }
  40. return parseData;
  41. }
  42. }
  43. }