fix: .
This commit is contained in:
@@ -3,6 +3,7 @@ using System.Text;
|
||||
using Dlhis.Basic.Organization.Response;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Services;
|
||||
|
||||
@@ -72,7 +73,7 @@ public class AliyunClient : IAliyunClient
|
||||
var bodyString = BuildBodyString(parameters);
|
||||
|
||||
var client = _httpClientFactory.CreateClient();
|
||||
client.DefaultRequestHeaders.Add("Host", Endpoint);
|
||||
//client.DefaultRequestHeaders.Add("Host", Endpoint);
|
||||
var content = new StringContent(bodyString, Encoding.UTF8, "application/x-www-form-urlencoded");
|
||||
var response = await client.PostAsync(url, content);
|
||||
var rawResponse = await response.Content.ReadAsStringAsync();
|
||||
@@ -89,26 +90,39 @@ public class AliyunClient : IAliyunClient
|
||||
RawResponse = rawResponse
|
||||
};
|
||||
|
||||
var response = JsonConvert.DeserializeObject<AliyunId3MetaVerifyApiResponse>(rawResponse);
|
||||
result.RequestId = response.RequestId;
|
||||
result.Code = response.Code;
|
||||
result.Message = response.Message;
|
||||
result.BizCode = response.ResultObject.BizCode;
|
||||
result.Similarity = ParseVerifyScore(response.ResultObject.FaceDetail);
|
||||
result.Passed = response.ResultObject.BizCode switch
|
||||
try
|
||||
{
|
||||
"1" => true,
|
||||
"2" or "3" => false,
|
||||
_ => null
|
||||
};
|
||||
var response = JsonConvert.DeserializeObject<AliyunId3MetaVerifyApiResponse>(rawResponse);
|
||||
result.RequestId = response?.RequestId;
|
||||
result.Code = response?.Code;
|
||||
result.Message = response?.Message;
|
||||
result.BizCode = response?.ResultObject?.BizCode;
|
||||
result.Similarity = ParseVerifyScore(response?.ResultObject?.FaceDetail);
|
||||
result.Passed = result.BizCode switch
|
||||
{
|
||||
"1" => true,
|
||||
"2" or "3" => false,
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
result.Code = "ParseError";
|
||||
result.Message = $"阿里云响应解析失败:{e.Message}";
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static double ParseVerifyScore(string faceDetail)
|
||||
private static double? ParseVerifyScore(string faceDetail)
|
||||
{
|
||||
var detail = JsonConvert.DeserializeObject<AliyunId3MetaVerifyFaceDetail>(faceDetail);
|
||||
return detail.VerifyScore;
|
||||
if (string.IsNullOrWhiteSpace(faceDetail))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var detail = JObject.Parse(faceDetail);
|
||||
return detail.Value<double?>("verifyScore");
|
||||
}
|
||||
|
||||
private static string ComputeSignature(SortedDictionary<string, string> parameters, string httpMethod, string accessKeySecret)
|
||||
@@ -176,9 +190,4 @@ public class AliyunClient : IAliyunClient
|
||||
public string FaceDetail { get; set; }
|
||||
}
|
||||
|
||||
private class AliyunId3MetaVerifyFaceDetail
|
||||
{
|
||||
[JsonProperty("verifyScore")]
|
||||
public double VerifyScore { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user