using System.Net; using Kurisu.RemoteCall.Abstractions; using Mapster; using Newtonsoft.Json; namespace Dlhis.Dh.Api.ResultHandlers; public class DhResultHandler : IRemoteCallResultHandler { /// public TResult Handle(HttpStatusCode statusCode, string responseBody) { var apiResult = JsonConvert.DeserializeObject(responseBody)!; var isSuccessStatusCode = ((int)statusCode >= 200) && ((int)statusCode <= 299); if (!isSuccessStatusCode || apiResult.Success == false) { if (!string.IsNullOrEmpty(apiResult.ErrMsg)) { throw new Exception(apiResult.ErrMsg); } throw new HttpRequestException(statusCode + " " + (int)statusCode); } return apiResult.Adapt(); } } public class DhResponse { public bool Success { get; set; } public string Code { get; set; } public string ErrMsg { get; set; } } // { // "success": true, // "code": "0", // "errMsg": "请求成功" // }