C# Request.QueryString用于读取传递的url
我使用CodeRequest.QueryString[“u”]读取传递给我的web应用程序的URL。如果传递的url没有参数,那么一切都可以正常工作,例如,如果提交了这样的url Request.QueryString[“u”]返回 而comments=This+is+a+test+for+PDF被忽略 我理解为什么会发生这种情况,无需解释:),但如何解决呢 我认为一种解决方案是用引号括住参数。像这样 "http://www.submitedurl.com/top_sellers_pdf.php?GoodThru=7-21-2011&comments=This+is+a+test+for+PDF”C# Request.QueryString用于读取传递的url,c#,asp.net,query-string,C#,Asp.net,Query String,我使用CodeRequest.QueryString[“u”]读取传递给我的web应用程序的URL。如果传递的url没有参数,那么一切都可以正常工作,例如,如果提交了这样的url Request.QueryString[“u”]返回 而comments=This+is+a+test+for+PDF被忽略 我理解为什么会发生这种情况,无需解释:),但如何解决呢 我认为一种解决方案是用引号括住参数。像这样 "http://www.submitedurl.com/top_sellers_pdf.p
还有什么解决方案呢?任何将URL传递给应用程序的方法都是错误的。RFC 2396说明
&
是URI中的保留字符,如果要将其视为数据而不是查询字符串分隔符,则必须将其转义到%26
。是否有可能修复将URL传递到web应用程序的行为
如果做不到这一点,您需要获取查询字符串并自己解析它。您可以使用以下方法将整个查询字符串作为一个字符串获取:
Request.QueryString.ToString()
。。。并使用以下命令获取'u='参数后的所有内容:
Request.QueryString.ToString().Substring(Request.QueryString.ToString().IndexOf("u=")+2)
任何将URL传递给应用程序的操作都是错误的。RFC 2396说明
&
是URI中的保留字符,如果要将其视为数据而不是查询字符串分隔符,则必须将其转义到%26
。是否有可能修复将URL传递到web应用程序的行为
如果做不到这一点,您需要获取查询字符串并自己解析它。您可以使用以下方法将整个查询字符串作为一个字符串获取:
Request.QueryString.ToString()
。。。并使用以下命令获取'u='参数后的所有内容:
Request.QueryString.ToString().Substring(Request.QueryString.ToString().IndexOf("u=")+2)
如果您控制URL参数,则可以在生成URL时将&替换为其他内容,并在提取URL时将其替换回。如果您控制URL参数,则可以在生成URL时将&替换为其他内容,然后在提取时将其替换回来。您可以使用原始url自己解析它,也可以循环处理请求。Querystring NameValueCollection:`
foreach (KeyValuePair<string, string> item in Request.QueryString)
{
string a = item.Key;
string b = item.Value;
}
foreach(Request.QueryString中的KeyValuePair项)
{
字符串a=item.Key;
字符串b=项值;
}
您将知道U代表原始的基本url,其他项目是原始url中的参数您可以使用原始url自己解析它,也可以循环处理请求。Querystring NameValueCollection:`
foreach (KeyValuePair<string, string> item in Request.QueryString)
{
string a = item.Key;
string b = item.Value;
}
foreach(Request.QueryString中的KeyValuePair项)
{
字符串a=item.Key;
字符串b=项值;
}
您将知道U代表原始基本url,其他项目是原始url中的参数构建查询字符串时,请使用:
var value = HttpUtility.UrlEncode("My querystring with & inside it");
构建查询字符串时,请使用:
var value = HttpUtility.UrlEncode("My querystring with & inside it");
但是,如果原始url包含包含((%26)作为数据的参数,该怎么办?应在查询字符串中将
&
转义为%26
。%
应在查询字符串中转义为%25
。但是,如果原始url包含的参数包含((%26)作为数据,该怎么办?&
应在查询字符串中转义为%26
。应在查询字符串中将%
转义为%25
。