1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using Flurl.Http;
- using IMCS.CCS.Entitys;
- using Microsoft.Extensions.Logging;
- using System;
- using System.Threading.Tasks;
- namespace IMCS.CCS.Service.Impl
- {
- /// <summary>
- /// WebApi 请求服务
- /// </summary>
- public class ApiRequestService : IApiRequestService
- {
- private readonly ILogger<IApiRequestService> _logger;
- public ApiRequestService(ILogger<IApiRequestService> logger)
- {
- _logger = logger;
- }
- /// <summary>
- /// 请求数据
- /// </summary>
- /// <param name="requsetMode"></param>
- /// <param name="apiUrl"></param>
- /// <param name="headerKeyValue"></param>
- /// <returns></returns>
- public async Task<(bool IsSuccess, string Message)> RequestAsync(RequsetModeEnum requsetMode, string apiUrl, object obj, string headerKeyValue = null)
- {
- try
- {
- var headerKey = "IMCS_CCS.Job.Request";
- var headerValue = "Success";
- if (!string.IsNullOrWhiteSpace(headerKeyValue) && headerKeyValue.Contains("="))
- {
- headerKey = headerKeyValue.Split('=')[0];
- headerValue = headerKeyValue.Split('=')[1];
- }
- IFlurlRequest flurlRequest = apiUrl.WithHeader(headerKey, headerValue).WithTimeout(8) ;
- if (flurlRequest == null)
- {
- return (false, "flurlRequest 空指针!");
- }
- IFlurlResponse flurResponse = default;
- if (requsetMode == RequsetModeEnum.Delete)
- {
- flurResponse = await flurlRequest.DeleteAsync();
- }
- if (requsetMode == RequsetModeEnum.Post)
- {
- if(obj == null)
- {
- flurResponse = await flurlRequest.PostAsync();
- }
- else
- {
- flurResponse = await apiUrl.PostJsonAsync(obj);
- }
-
- }
- if (requsetMode == RequsetModeEnum.Get)
- {
- flurResponse = await flurlRequest.GetAsync();
- }
- if (flurResponse == null)
- {
- return (false, "flurResponse 空指针!");
- }
- var result = await flurResponse.GetStringAsync();
- if (string.IsNullOrWhiteSpace(result))
- {
- return (false, "result 空指针!");
- }
- return (true, result);
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, $"接口请求异常【ApiRequestService 》RequestAsync】:{ex.Message}");
- return (false, ex.Message);
- }
- }
-
- }
- }
|