如果我想使用 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