代码之家  ›  专栏  ›  技术社区  ›  Ryan

来自的未授权401错误Xamarin.表格使用wait的ViewModel客户端.GetAsync

  •  0
  • Ryan  · 技术社区  · 4 年前

    我有一个Xamarin.表格拨打电话的iOS应用程序ASP.NETWeb API。以下是从Xamarin视图模型进行的api调用:

    private async void GetInterestList()
            {
                using (var client = new HttpClient())
                {
                    string token = Storage.GetKeyValue("token");
                    client.DefaultRequestHeaders.Authorization = System.Net.Http.Headers.AuthenticationHeaderValue.Parse(token);
                    HttpResponseMessage response = await client.GetAsync("https://xxxx/api/common/getinterestlist");
                    if (response.IsSuccessStatusCode)
                    { 
                        string s = await response.Content.ReadAsStringAsync();
                        List<MobileInterest> result = new List<MobileInterest>();
                        result = JsonConvert.DeserializeObject<List<MobileInterest>>(s);
                        foreach (var item in result)
                        {
                            InterestsList.Add(item.Interest);
                        }
                    }
                }
                
            }
    

    “token”对象是在Login POST方法期间创建的JWT。JWT有效期为60分钟。 当我运行内容页/视图模型(MVVM)时,我在HttpResponseMessage对象中得到一个401未经授权的错误。 如果我在Postman上使用相同的有效令牌运行完全相同的API方法,我就成功了,并将json对象返回到模型中。

    我不明白为什么api方法可以在Postman客户机上工作,但是在iOS模拟器上401失败了。

    我在Xamarin项目中还有其他API调用也可以使用。

    我该去哪找?

    0 回复  |  直到 4 年前