【问题标题】:cannot convert from 'System.Threading.Tasks.Task<string>' to 'string'无法从 'System.Threading.Tasks.Task<string>' 转换为 'string'
【发布时间】:2022-01-27 03:14:35
【问题描述】:

我正在从 API 获取数据并尝试将其转换为反序列化形式。但是得到这个错误。

public static async Task<List<Movie>> GetAllMovies(int pageNumber, int pageSize)
        {
            var httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", Preferences.Get("accessToken", string.Empty));
            var response = httpClient.GetStringAsync(AppSettings.ApiUrl + String.Format("api/movies/AllMovies?sort=asc&pageNumber={0}&pageSize={1}",pageNumber,pageSize));
            return JsonConvert.DeserializeObject<List<Movie>>(response);

        }

【问题讨论】:

    标签: asp.net-mvc model-view-controller asp.net-mvc-viewmodel


    【解决方案1】:

    在响应之前使用等待

      return JsonConvert.DeserializeObject<List<Movie>>(await response)
    

    【讨论】:

      【解决方案2】:

      将您的方法更改为:

      public static async Task<List<Movie>> GetAllMovies(int pageNumber, int pageSize)
      {
          var httpClient = new HttpClient();
          httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", Preferences.Get("accessToken", string.Empty));
          var result = httpClient.GetStringAsync(AppSettings.ApiUrl + String.Format("api/movies/AllMovies?sort=asc&pageNumber={0}&pageSize={1}",pageNumber,pageSize));
          var response = await result.Content.ReadAsStringAsync();
          return JsonConvert.DeserializeObject<List<Movie>>(response);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多