如何解析具有多个参数值的URL字符串?

时间:2011-11-04 14:15:59

标签: asp.net .net parsing url

我正在制作这个奇怪的网络服务,它将其参数作为URL中的查询参数。问题是,单个参数可以有多个值。类似于:

http://mydomain/Service?operation=ActivateUser&id=1&id=2&id=3

在这种情况下,我需要激活ID为1,2和3的3个用户。更糟糕的是,它可能是这样的(我认为,规范有点模糊,稍后会澄清):

http://mydomain/Service?operation=ActivateUser&id=1&operation=DeleteUser&id=2

在这种情况下,我需要激活用户1并删除用户2.

所以我真的需要一个URL解析器来保存参数的顺序。 .NET的默认Request.QueryString不会这样做,它只是用逗号分隔值,然后用命令分隔地狱。

没有潜入并将原始网址拆分为?,&和=我自己,还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

听起来像Request.QueryString.GetValuesNameValueCollection.GetValues)就是你所追求的。它将返回为给定键找到的值的字符串数组,以及它们在URL中的顺序。

给定http://www.site.com/page.aspx?keyid=1&keyid=2&keyid=3

string[] keys = Request.QueryString.GetValues("keyid");

keys[0] would be "1"
keys[1] would be "2"
keys[2] would be "3"