如何从C#中的URL中的查询字符串中解析特定数据?

时间:2015-02-05 11:07:50

标签: asp.net url

我想解析URL查询字符串中的数据并存储它。以下是我的示例网址。从这里我想解析数据并存储在某个地方

http://www.example.com/default.aspx?VN=919999999999&Rawmessage=urlTest&Time=2013-04-08 12:32:04&Send=919000000002&MID=101878052

我想将VN和Rawmessage存储到这些字符串中,

string x = Request.QueryString["VN"]
string y = Request.QueryString["Rawmessage"]

请帮我找一个解决方案。

2 个答案:

答案 0 :(得分:1)

将此代码放在Page_Load()文件中的Default.aspx.cs函数中。

    protected void Page_Load(object sender, EventArgs e)
    {

        string x = Request.QueryString["VN"];
        string y = Request.QueryString["Rawmessage"];
    }

答案 1 :(得分:0)

参考我们的讨论,我想你想要解析查询字符串键值对并在其他地方使用这些值。

此外,ASP.Net不必对解析做任何事情,这是一个纯粹的C#问题。

我在控制台应用程序的上下文中给出了问题的示例解决方案,您可以根据自己的喜好重复使用代码。

var inputUrl =
@"http://www.example.com/default.aspx?VN=919999999999&Rawmessage=urlTest&Time=2013-04-08 12:32:04&Send=919000000002&MID=101878052";

int index = inputUrl.IndexOf("?");

var queryString = inputUrl
                .Substring(index + 1)
                .Split('&');
foreach (var strKeyValuePair in queryString)
  {
     var keyValPair = strKeyValuePair.Split('=');
                Console.WriteLine("Key: {0}, Value: 
                   {1}",keyValPair[0],keyValPair[1]);
  }

Console.WriteLine("\n============================================\n\n");

string VN = queryString.FirstOrDefault(x => x.StartsWith("VN"));
string RawMessage = queryString.FirstOrDefault(x => 
                            x.StartsWith("Rawmessage"));

Console.WriteLine("VN: {0}",VN.Split('=')[1]);
Console.WriteLine("RawMessage: {0}", RawMessage.Split('=')[1]);

Console.ReadLine(); // just to halt the console