求助:修复MAUI DotNet中签名未找到错误(日期选择器场景)
MAUI DatePicker切换日期时触发“签名未找到”错误求助
我在.NET MAUI中实现了一个功能,希望在DatePicker切换日期时加载并展示数据,但运行时出现**“签名未找到”**错误,没能解决,求帮忙。
相关代码
XAML代码
<DatePicker Grid.Row="3" x:Name="mDatePicker" Style="{StaticResource dateStyle}" MinimumDate="01/01/2020" MaximumDate="12/31/2022" Date="01/01/2022" TextColor="White" DateSelected="Datepicker_SelectedIndexChanged" />
C#代码
private void Datepicker_SelectedIndexChanged(object sender, EventArgs e) { DatePickAync(); } public async void DatePickAync() { var client = new RestClient(); _dateToken = new DateToken(); _dateToken.EmpKy = 874258; _dateToken.CompanyId = 156; _dateToken.FDT = new DateTime(2022 - 01 - 10); _dateToken.TDT = new DateTime(2022 - 01 - 31); _dateToken.Chk = 0; _dateToken.PrjKy = 1; _dateToken.TaskKy = 1; var request = new RestRequest("https://bl360x.com/BLEComTest/api/HR/MultiAtnAnlysis").AddJsonBody(_dateToken); request.Method = Method.Post; request.AddHeader("Accept", "application/json"); request.AddHeader("IntegrationID", "1aa6a39b-5f54-4905-880a-a52733fd6105"); request.AddHeader("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6WyJWaWhhbi5CTCIsIlZpaGFuLkJMIl0sIm5hbWVpZCI6IlZpaGFuLkJMIiwiRmlyc3ROYW1lIjoiVmloYW4uQkwiLCJVc2VySWQiOiJWaWhhbi5CTCIsIkVtYWlsIjoiTm8gRW1haWwiLCJDQ0QiOiJEQyIsInJvbGUiOiJDb21wYW55QXV0aFN1Y2Nlc3MiLCJuYmYiOjE2NzI4OTA1NTUsImV4cCI6MTY3MjkzMzc1NSwiaWF0IjoxNjcyODkwNTU1fQ.dFO70i68Yx7XtglN96vgCPG3-fGNhbrvB_CH3FWQ8XA"); request.AddHeader("Content-Type", "application/json"); RestResponse response = await client.PostAsync(request); // Check the status code of the response if (response.StatusCode == HttpStatusCode.OK) { // Read the response data var responseContent = response.Content.ToString(); Console.WriteLine(responseContent); } else { Console.WriteLine("Request failed with status code: " + response.StatusCode); } }
排查建议
- 检查接口签名规则:后端返回“签名未找到”,优先确认请求是否包含后端要求的签名参数(可能在请求头或请求体),以及签名的生成逻辑是否和后端一致。
- 修正DateTime初始化错误:代码中
new DateTime(2022 - 01 - 10)会计算为2011,正确写法是new DateTime(2022, 01, 10),错误的日期值可能导致后端签名验证失败。 - 规范异步方法:将
async void DatePickAync()改为async Task DatePickAync(),事件处理方法改为private async void Datepicker_SelectedIndexChanged(...)并内部await DatePickAync();,便于捕获异步过程中的异常。 - 验证请求体结构:确认
DateToken类的属性名称、数据类型和后端接口定义完全匹配,序列化后的JSON字段是否符合要求,字段大小写、格式不匹配可能触发签名验证问题。 - 检查令牌有效性:确认Authorization中的Bearer令牌是否过期,以及是否具备访问该接口的权限,令牌无效也可能被后端返回类似错误。
内容的提问来源于stack exchange,提问作者Danul Hivi Vihan
相关产品推荐
相关产品推荐

