1

试图获取日期列表,我需要在 URL 之间添加 2 个字符串

  1. 无法正确连接 URL
  2. 需要帮助反序列化为 DateTime 列表

    public async Task<List<DateTime>>GetDate()
    {
     // Original Url  http://local:8796550/serv/newobj/v678/object/35b724c5424/serv/addIDinhere/dates .    
        List<DateTime> dates = new List<DateTime>();
    
        var Id= "xxxxxxxxxxxxxxhola57a";
        var Uri = "http://local:8796550/serv/newobj/v678/object/35b724c5424/serv/";
        var Date="/dates";
        var client = new HttpClient();
        var ServicesDateRequest = await client.GetAsync($"{Uri}&={Id}&={Date}");
        string oj = await ServicesDateRequest.Content.ReadAsStringAsync();
        //here deserialized it into datetime list 
        var DatesJson = JsonConvert.DeserializeObject<dates>(oj);
    
      return dates;
    
    }
    
4

2 回答 2

1

当您使用字符串插值时,您只需要花括号和表达式。您在每个组件之间添加的"&="内容对于获取您正在寻找的 url 格式是不必要的(假设您想要的格式是“原始网址”注释显示的格式)。

var ServicesDateRequest = await client.GetAsync($"{Uri}{Id}{Date}");

对于反序列化,请查看有关您正在使用的方法的文档。具体来说,关于类型参数的部分。JsonConvert.DeserializeObject<T>(string).

类型参数 T 要反序列化到的对象的类型。

换句话说,您应该使用要反序列化的类型(在这种情况下List<DateTime>,而不是变量的名称。

于 2019-07-19T15:30:32.423 回答
0

尝试这个。您可以使用 string.format 使用查询字符串参数格式化您的 url。做反序列化,你需要使用无数据类型。

public async Task<List<DateTime>> GetDate()
    {
        // Original Url  http://local:8796550/serv/newobj/v678/object/35b724c5424/serv/addIDinhere/dates .    
        List<DateTime> dates = new List<DateTime>();
        var Id = "xxxxxxxxxxxxxxhola57a";
        var Date = "/dates";
        var client = new HttpClient();
        var formatedUrl = string.Format("http://local:8796550/serv/newobj/v678/object/35b724c5424/serv/?id={0}&date={1}", Id, Date);
        var ServicesDateRequest = await client.GetAsync(formatedUrl);
        string oj = await ServicesDateRequest.Content.ReadAsStringAsync();
        //here deserialized it into datetime list 
        var DatesJson = JsonConvert.DeserializeObject<DateTime>(oj);

        return DatesJson;

    }
于 2019-07-19T15:36:11.783 回答