我有一个变量
string rawURL = HttpContext.Current.Request.RawUrl;
如何读取此URL的查询字符串参数?
我有一个变量
string rawURL = HttpContext.Current.Request.RawUrl;
如何读取此URL的查询字符串参数?
这很可能是您想要的内容
Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl);
string yourValue= HttpUtility.ParseQueryString(theRealURL.Query).Get("yourParm");
无需使用RawUrl
——Request
对象已经包含了解析后的版本,可以使用Request.QueryString
属性。
这是一个索引化的NameValueCollection
。
Request.Params
(由@Piotr建议),在某些情况下是可以的。在其他情况下,我已经转换为Request.QueryString
,如@Oded所建议的那样。Request.QueryString
不会触发参数验证,这可能是您想要避免的情况,例如当您接受HTML作为输入时。 - ManfredHttpContext
的方式,例如 IHttpContextAccessor
。
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-context?view=aspnetcore-5.0
当你拥有上下文时,你可以简单地使用这个方法:
httpContext.Request.QueryString.Value
使用方法:
网址:https://localhost:44335/test?key=123
var key = System.Web.HttpUtility.ParseQueryString(httpContext.Request.QueryString.Value).Get("key");
请尝试以下代码:
string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];
这将解决你的问题......
string strReq = "";
strReq = HttpContext.Current.Request.RawUrl;
strReq = strReq.Substring(strReq.IndexOf('?') + 1);