如果我希望使用System.Net.HttpClient提交http get请求,似乎没有用于添加参数的api,这是正确的吗?
是。
是否有任何简单的API可以用来构建查询字符串,而无需构建名称值集合并对其进行url编码,然后最终将它们串联起来?
当然:
var query = HttpUtility.ParseQueryString(string.Empty);query["foo"] = "bar<>&-baz";query["bar"] = "bazinga";string queryString = query.ToString();
将给您预期的结果:
foo=bar%3c%3e%26-baz&bar=bazinga
您可能还会发现
UriBuilder该类有用:
var builder = new UriBuilder("http://example.com");builder.Port = -1;var query = HttpUtility.ParseQueryString(builder.Query);query["foo"] = "bar<>&-baz";query["bar"] = "bazinga";builder.Query = query.ToString();string url = builder.ToString();将给您预期的结果:
http://example.com/?foo=bar%3c%3e%26-baz&bar=bazinga
您可以更加安全地使用您的
HttpClient.GetAsync方法。



