2011-11-22 112 views
3

不知道如何问这个问题或者是否可以完成。查询字符串C中的通配符#

我有一个ID号,我想测试它是否与存储在我正在使用的API中的URL查询字符串中的ID匹配。

因此,如果我想要搜索的网址包含http://www.testurl.com/page?key=55555,我只想放入我的http请求,如果该网址'包含'该号码。测试url是否完全相等已被证明存在问题,因为存储的查询字符串中有很多其他信息。

查询字符串中的通配符甚至可能,考虑到我已经编码了html?任何帮助表示赞赏。谢谢!

回答

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

你说得对。刚编辑我的答案。 –