如果我希望使用System.Net.HttpClient提交http get请求,似乎没有用于添加参数的api,这是正确的吗?
是否有任何简单的API可以用来构建查询字符串,而无需构建名称值集合并对其进行url编码,然后最终将它们串联起来?我希望使用类似RestSharp的api的东西(即AddParameter(..))
是。
是否有任何简单的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该类有用:
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方法。
HttpClient.GetAsync