小编典典

将值附加到查询字符串

all

我在列表中有一组类似于下面的 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返回 idserverlocation等参数。

我需要的是向现有查询字符串添加/附加值。

以 URL 为例:

http://somesite.example/backup/index.php?action=login&attempts=1

我需要更改查询字符串参数的值:

动作=登录 1

尝试=11

如您所见,我为每个值附加了“1”。我需要从其中包含不同查询字符串的字符串中获取一组 URL,并在末尾为每个参数添加一个值,然后再次将它们添加到列表中。


阅读 75

收藏
2022-06-29

共1个答案

小编典典

您可以使用HttpUtility.ParseQueryString方法和 anUriBuilder它提供了一种处理查询字符串参数的好方法,而无需担心解析、URL 编码等事情:

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"
2022-06-29