我使用HttpClient.GetAsync()
方法。我有一个类别列表,并希望在查询字符串中传递它。传递查询字符串中的最佳方式HttpClient.GetAsync()
var categories = new List<int>() {1,2};
如何在查询字符串中传递List<int>/List<string>
?例如,https://example.com/api?categories=1,2
当然,可以使用foreach
和StringBuilder
。但也许有更好的方法来做到这一点?
例如,.PostAsync(工作)和JSON内容非常方便:
var categories = new List<int>() {1,2}; //init List
var parametrs = new Dictionary<string, object>();
parametrs.Add("categories", categories);
string jsonParams = JsonConvert.SerializeObject(parametrs); // {"categories":[1,2]}
HttpContent content = new StringContent(jsonParams, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(new Uri("https://example.com"), content);
附:我使用Windows Phone 8.
您的代码显示您已经使用JSON传递内容。为什么不将查询字符串中的列表作为JSON传递?毕竟,JSON是用字符串表示数据的好方法。我刚才问过[如果在URL中传递JSON时会出现问题](http://stackoverflow.com/questions/22852270/potential-problems-with-passing-json-in-url),结果令人鼓舞。 – mason
而不是循环和'StringBuilder',只需使用'string.Join(“,”,categories)'。 –
@mason如何使用GetAsync()在查询字符串中传递json?对不起,我不太明白。 – Alexandr