请求参数无法识别&;amp;作为分离器

本文关键字:amp 分离器 参数 识别 请求 | 更新日期: 2023-09-27 18:20:20

我有一个HttpHandler,它只需使用上下文就可以从请求URL中读取参数。请求["param1"]。问题是我的网站是xHTML兼容的,所以所有的链接都是编码的。所以我有一个格式为的链接:http://mydomain.com/?param1=a&param2=b。

问题是无法识别请求["param2"]。相反,它认为第二个参数是"amp;param2"。它没有意识到;代表&在URL中。我该如何告诉"请求"链接应该符合xHTML?

请求参数无法识别&;amp;作为分离器

您需要对链接进行UrlEncode编码,而不是HTMLEncode。

第一个给出& = %26,而后者(您正在使用的那个)给出& = &,并且处理程序通过第一个&在&

您想要使用Request.QueryString,而不是Request。

例如:

context.Request.QueryString["param1"]
context.Request.QueryString["param2"]

url中分隔GET(即querystring/request)参数的与号仍然需要是'&'。如果您在实际的XHTML中显示一个与号,那么您将使用XHTML编码。XHTML编码一个用于在URL中用作参数分隔符的符号,将不会被识别为这样。