我想计算在一串URL中出现多少查询字符串键。这里的URL是一个字符串,所以我不能使用Request.QueryString.AllKeys来计算url中的密钥数量。目前,我有一个解决方案,通过分析url字符串的结构并使用字符串中的count字符串来计算url字符串中的查询字符串键。每个人都可以清楚地看到我的代码示例:
public int CountQueryStringKey(string urlString)
{
string urlWithoutKey = urlString.Substring(0, urlString.IndexOf("?"));
string allKeyString = urlString.Substring(urlString.IndexOf("?") + 1);
string[] allKeyAndValue = allKeyString.Split('&');
return allKeyAndValue.Length;
}
这很简单,但还不够。如果url的字符串中没有查询字符串键会发生什么,并且总是存在不同类型的url,我不确定它的结构。
我需要一些帮助才能在这个问题上找到一个好的解决方案。
答案 0 :(得分:2)
虽然重复(Get individual query parameters from Uri)提供了足够好的答案,但我建议使用Uri.Query来提取Url的查询部分。而不是按照其他问题的建议继续HttpUtility.ParseQueryString 。 比NameValueCollection.Count获取查询参数的数量。
var queryParameters = HttpUtility.ParseQueryString(new Uri(urlString).Query);
var numberOfParameter = queryParameters.Count;
答案 1 :(得分:1)
看一下这篇文章。在这里,您可以使用HttpUtility从普通字符串中获取查询字符串参数