Вопрос по url, asp.net, parameters, c#, query-string – Как прочитать параметры строки запроса необработанного URL-адреса ASP.NET?

17

У меня есть переменная

string rawURL = HttpContext.Current.Request.RawUrl;

Как мне прочитать параметры строки запроса для этого URL?

Возможный дубликат:stackoverflow.com/questions/1206548/… LittleBobbyTables

Ваш Ответ

5   ответов
28

  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"); 
действительно? Это все действительно необходимо?
@ james31rock В моем случае из-за перезаписи URL. Видимый URL в браузере и в RawUrl может сильно отличаться, если вы используете перезапись URL.
Это было действительно полезно. Следует отметить, что, поскольку вы хотите использовать только QueryString, просто используйте string.Format (& quot; http: //a.com‹0‹" ;, Request.RawURL). Схема и имя хоста действительно не имеют значения.
@GilliVilla, вы правы, если вы хотите получить параметр из RawUrl. Почему ты хотя? Если у вас есть HttpContext.Current.Request, все, что вам нужно сделать, это HttpContext.Current.Request.QueryString [& quot; yourparam & quot;]. Вы делаете свой код нечитаемым. Вот почему люди дали вам отрицательный голос. Я не дал вам отрицательный голос, но я понимаю, почему это произошло.
@ james31rock да .. на самом деле :) Вопрос не был настолько очевидным, что некоторые гении отрицают это ... rawurl должен быть обработан таким образом. То, что упоминали другие, является строкой запроса по умолчанию. GilliVilla
-3

string strReq = "";
strReq = HttpContext.Current.Request.RawUrl;
strReq = strReq.Substring(strReq.IndexOf('?') + 1);
1

string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];

9

RawUrl -Request объект уже содержит проанализированную версию, используяRequest.QueryString имущество.

Это индексируетсяNameValueCollection.

Он специально спрашивает, как это сделать в RawUrl. Строка запроса RawUrl и Request.QueryString не связаны в некоторых ситуациях, например, если вы переписываете URL. Тот факт, что он использует RawUrl, является сильным намеком на то, что он использует перезапись URL.
В прошлом я также использовалRequest.Params (предложено @Piotr), что хорошо в некоторых случаях. В других случаях я перешел наRequest.QueryString как предложено @Oded.Request.QueryString не запускает проверку параметров, чего вы можете избежать, например, когда вы принимаете HTML в качестве входных данных.
0

которое позволит вам сделать это легко. Вам не нужно разбирать его самостоятельно.

Похожие вопросы