2011-11-22 4 views
3

이 방법을 묻거나 수행 할 수 있는지 확실하지 않습니다.쿼리 문자열의 와일드 카드 C#

내가 작업중인 API에 저장된 URL 쿼리 문자열의 ID와 일치하는지 테스트하고 싶은 ID 번호가 있습니다.

URL을 검색하려면 http://www.testurl.com/page?key=55555이 포함되어 있습니다. URL에 '해당 번호가 포함되어 있으면'http 요청을 입력하고 싶습니다. URL이 정확히 일치하는지 테스트하면 저장된 쿼리 문자열에 많은 정보가 있으므로 문제가있는 것으로 판명되었습니다.

이미 html을 인코딩 중이므로 쿼리 문자열 내에 와일드 카드가 있습니까? 어떤 도움을 주셔서 감사합니다. 고맙습니다! 당신이 QueryString을 액세스 할 수있는 경우

답변

3
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)); 
    } 
} 
+0

+1 : 재미있는 접근법. –

+0

감사! 나는 이것이 내가 필요한 것에 효과가있을 것이라고 생각한다. – Drew

2

, 당신은이 작업을 수행 할 수 있습니다 :

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

네 말이 맞아. 내 대답을 편집했습니다. –