Подстановочные знаки в строке запроса C # - PullRequest
3 голосов
/ 22 ноября 2011

Не знаю, как спросить об этом или можно ли это сделать.

У меня есть идентификационный номер, который я хочу проверить, совпадает ли он с идентификатором в строке запроса URL, которая хранится в API Iя работаю с.

Так что, если URL, который я хочу найти, содержит http://www.testurl.com/page?key=55555, я просто хочу вставить свой http-запрос, если этот URL-адрес «содержит» это число.Проверка того, что URL-адрес в точности совпадает, оказалась проблематичной, поскольку в хранимой строке запроса содержится много другой информации.

Возможны ли подстановочные знаки в строках запроса, учитывая, что я уже кодирую html?Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011
string[] myUrls = new string[] {
  "http://www.testurl.com/page?key=55555",
  "http://www.testurl.com/page?key=555556789",
  "http://www.testurl.com/page?foo=bar&key=55555&baz=938355555"};

string myToken = "key=55555";
bool exists;

foreach(string url in myUrls)
{
    System.Uri uri = new System.Uri(url);
    string q = uri.GetComponents(UriComponents.Query, UriFormat.Unescaped);

    if (q.Split('&').Any(x=>x== myToken))
    {
       Console.WriteLine(string.Format("found it in '{0}'", url));
    }
}
2 голосов
/ 22 ноября 2011

Если вы можете получить доступ к QueryString, вы можете просто сделать это:

if (HttpContext.Current.Request.QueryString["key"].ToLower() == "5555")
    //do something
...