我在列表中有一组类似于下面的 URL
http://somesite.example/backup/lol.php?id=1&server=4&location=us
http://somesite.example/news.php?article=1&lang=en
我设法使用以下代码获取查询字符串:
myurl = longurl.Split('?'); NameValueCollection qs = HttpUtility.ParseQueryString(myurl [1]); foreach (string lol in qs) { // results will return }
但它仅 根据提供的 URL返回 id 、 server 、 location等参数。
我需要的是向现有查询字符串添加/附加值。
以 URL 为例:
http://somesite.example/backup/index.php?action=login&attempts=1
我需要更改查询字符串参数的值:
动作=登录 1
尝试=11
如您所见,我为每个值附加了“1”。我需要从其中包含不同查询字符串的字符串中获取一组 URL,并在末尾为每个参数添加一个值,然后再次将它们添加到列表中。
您可以使用HttpUtility.ParseQueryString方法和 anUriBuilder它提供了一种处理查询字符串参数的好方法,而无需担心解析、URL 编码等事情:
HttpUtility.ParseQueryString
UriBuilder
string longurl = "http://somesite.example/news.php?article=1&lang=en"; var uriBuilder = new UriBuilder(longurl); var query = HttpUtility.ParseQueryString(uriBuilder.Query); query["action"] = "login1"; query["attempts"] = "11"; uriBuilder.Query = query.ToString(); longurl = uriBuilder.ToString(); // "http://somesite.example:80/news.php?article=1&lang=en&action=login1&attempts=11"