如何处理来自httpclient的数据

马龙兰

我正在开发一个新的Windows Phone 8应用程序。我正在连接到返回有效json数据的Web服务。我正在使用longlistselector来显示数据。当我在GetAccountList()中使用字符串json时,此方法工作正常;但是从DataServices类接收数据时,出现错误“无法将类型'System.Threading.Tasks.Task'隐式转换为字符串”。不知道出了什么问题。欢迎任何帮助。谢谢!

DataServices.cs

    public async static Task<string> GetRequest(string url)
    {
        HttpClient httpClient = new HttpClient();

        await Task.Delay(250);

        HttpResponseMessage response = await httpClient.GetAsync(url);
        response.EnsureSuccessStatusCode();
        string responseBody = await response.Content.ReadAsStringAsync();
        Debug.WriteLine(responseBody);
        return await Task.Run(() => responseBody);
    }

AccountViewModel.cs

 public static List<AccountModel> GetAccountList()
    {
        string json = DataService.GetRequest(url);
        //string json = @"{'accounts': [{'id': 1,'created': '2013-10-03T16:17:13+0200','name': 'account1 - test'},{'id': 2,'created': '2013-10-03T16:18:08+0200','name': 'account2'},{'id': 3,'created': '2013-10-04T13:23:23+0200','name': 'account3'}]}";
        List<AccountModel> accountList = new List<AccountModel>();

        var deserialized = JsonConvert.DeserializeObject<IDictionary<string, JArray>>(json);

        JArray recordList = deserialized["accounts"];


        foreach (JObject record in recordList)
        {
            accountList.Add(new AccountModel(record["name"].ToString(), record["id"].ToString()));
        }

        return accountList;
    }

更新:我稍作更改,现在就像一个魅力。谢谢你的帮助!DataServices.cs

     //GET REQUEST
    public async static Task<string> GetAsync(string url)
    {
        var httpClient = new HttpClient();

        var response = await httpClient.GetAsync(url);

        string content = await response.Content.ReadAsStringAsync();

        return content;
    }

AccountViewModel.cs

    public async void LoadData()
    {
        this.Json = await DataService.GetAsync(url);
        this.Accounts = GetAccounts(Json);
        this.AccountList = GetAccountList(Accounts);
        this.IsDataLoaded = true;
    }

    public static IList<AccountModel> GetAccounts(string json)
    {
        dynamic context = JObject.Parse(json);

        JArray deserialized = (JArray)JsonConvert.DeserializeObject(context.results.ToString());

        IList<AccountModel> accounts = deserialized.ToObject<IList<AccountModel>>();

        return accounts;
    }

    public static List<AlphaKeyGroup<AccountModel>> GetAccountList(IList<AccountModel> Accounts)
    {
        List<AlphaKeyGroup<AccountModel>> accountList = AlphaKeyGroup<AccountModel>.CreateGroups(Accounts,
                System.Threading.Thread.CurrentThread.CurrentUICulture,
                (AccountModel s) => { return s.Name; }, true);

        return accountList;
    }
克雷孔

那行是你的问题:

return await Task.Run(() => responseBody);

你尝试过吗?

return responseBody;

也尝试一下:

public async static List<AccountModel> GetAccountList()
{
    string json = await DataService.GetRequest(url);
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何处理来自REST服务的海量数据

来自分类Dev

如何处理来自Web服务的过多数据?OOM

来自分类Dev

如何处理来自支付网关的响应数据?

来自分类Dev

如何处理来自NBA.com的数据?

来自分类Dev

Swift-如何处理来自FIRUserInfo的FB Auth数据?

来自分类Dev

如何处理来自node.js的网页上的数据

来自分类Dev

如何处理来自Controller或Model的View数据?

来自分类Dev

如何处理来自NBA.com的数据?

来自分类Dev

iOS-如何处理来自Web服务的大量数据

来自分类Dev

如何处理来自node.js的网页上的数据

来自分类Dev

火花处理如何处理像天蓝色Blob存储这样的来自群集外部的数据?

来自分类Dev

如何处理HttpClient找不到的页面?

来自分类Dev

如何处理来自GameCenter的滞后尖峰

来自分类Dev

如何处理来自Singleton Java的异常?

来自分类Dev

如何处理来自请求主体的图像

来自分类Dev

如何处理来自角色异常的错误

来自分类Dev

如何处理来自GameCenter的滞后尖峰

来自分类Dev

如何处理CSV数据?

来自分类Dev

如何处理JSON数据?

来自分类Dev

如何处理CSV数据?

来自分类Dev

如何处理 fixedLengthformat 数据?

来自分类Dev

图例与来自不同数据帧的多个图的交互:如何处理这种交互?

来自分类Dev

如何处理来自复杂Angular.js Web表单的提交数据

来自分类Dev

使用XSL合并后如何处理来自多个XML文件的所有数据

来自分类Dev

如何处理来自带有回调的多个ajax异步调用的数据?

来自分类Dev

Android 架构组件室库 - 如何处理来自 DAO 的实时数据

来自分类Dev

spark中如何处理多参数函数,参数数据来自本地文件生成的rdd

来自分类Dev

如何处理来自Google Play的待处理购买

来自分类Dev

有关如何处理实时提要的建议,其中包含来自mysql数据库的数据

Related 相关文章

  1. 1

    如何处理来自REST服务的海量数据

  2. 2

    如何处理来自Web服务的过多数据?OOM

  3. 3

    如何处理来自支付网关的响应数据?

  4. 4

    如何处理来自NBA.com的数据?

  5. 5

    Swift-如何处理来自FIRUserInfo的FB Auth数据?

  6. 6

    如何处理来自node.js的网页上的数据

  7. 7

    如何处理来自Controller或Model的View数据?

  8. 8

    如何处理来自NBA.com的数据?

  9. 9

    iOS-如何处理来自Web服务的大量数据

  10. 10

    如何处理来自node.js的网页上的数据

  11. 11

    火花处理如何处理像天蓝色Blob存储这样的来自群集外部的数据?

  12. 12

    如何处理HttpClient找不到的页面?

  13. 13

    如何处理来自GameCenter的滞后尖峰

  14. 14

    如何处理来自Singleton Java的异常?

  15. 15

    如何处理来自请求主体的图像

  16. 16

    如何处理来自角色异常的错误

  17. 17

    如何处理来自GameCenter的滞后尖峰

  18. 18

    如何处理CSV数据?

  19. 19

    如何处理JSON数据?

  20. 20

    如何处理CSV数据?

  21. 21

    如何处理 fixedLengthformat 数据?

  22. 22

    图例与来自不同数据帧的多个图的交互:如何处理这种交互?

  23. 23

    如何处理来自复杂Angular.js Web表单的提交数据

  24. 24

    使用XSL合并后如何处理来自多个XML文件的所有数据

  25. 25

    如何处理来自带有回调的多个ajax异步调用的数据?

  26. 26

    Android 架构组件室库 - 如何处理来自 DAO 的实时数据

  27. 27

    spark中如何处理多参数函数,参数数据来自本地文件生成的rdd

  28. 28

    如何处理来自Google Play的待处理购买

  29. 29

    有关如何处理实时提要的建议,其中包含来自mysql数据库的数据

热门标签

归档