Получите параметры отдельного запроса от Uri [дубликат]

Этот вопрос уже имеет ответ здесь:

У меня есть строка uri как: http://example.com/file?a=1&b=2&c=string%20param

Есть ли существующая функция, которая преобразовала бы строку параметра запроса в словарь тот же путь как Контекст ASP.NET. Запрос делает это.

Я пишу консольное приложение и не веб-сервис, таким образом, нет никакого Контекста. Запросите проанализировать URL для меня.

Я знаю, что довольно легко взломать строку запроса сам, но я использовал бы функцию FCL, то, если существует.

112
задан Ghostrider 21 May 2010 в 18:25
поделиться

4 ответа

Посмотрите на HttpUtility.ParseQueryString() Это даст вам NameValueCollection вместо словаря, но все равно сделает то, что вам нужно.

Другой вариант - использовать string.Split().

    string url = @"http://example.com/file?a=1&b=2&c=string%20param";
    string[] parts = url.Split(new char[] {'?','&'});
    ///parts[0] now contains http://example.com/file
    ///parts[1] = "a=1"
    ///parts[2] = "b=2"
    ///parts[3] = "c=string%20param"
12
ответ дан 24 November 2019 в 02:46
поделиться

Вы можете использовать:

var queryString = url.Substring(url.IndexOf('?')).Split('#')[0]
System.Web.HttpUtility.ParseQueryString(queryString)

MSDN

119
ответ дан 24 November 2019 в 02:46
поделиться

Это должно работать:

string url = "http://example.com/file?a=1&b=2&c=string%20param";
string querystring = url.Substring(url.IndexOf('?'));
System.Collections.Specialized.NameValueCollection parameters = 
   System.Web.HttpUtility.ParseQueryString(querystring);

Согласно MSDN. Это не совсем тот тип коллекции, который вы ищете, но все же полезно.

Edit: По-видимому, если вы передадите полный url в ParseQueryString, он добавит 'http://example.com/file?a' в качестве первого ключа коллекции. Поскольку это, вероятно, не то, что вам нужно, я добавил подстроку, чтобы получить только соответствующую часть url.

25
ответ дан 24 November 2019 в 02:46
поделиться

Вы можете ссылаться на System.Web в консольном приложении, а затем искать служебные функции, которые разделяют параметры URL.

-2
ответ дан 24 November 2019 в 02:46
поделиться
Другие вопросы по тегам:

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