C#操作Url参数


/*----------------------------------------
 * Function:C#操作Url参数
 * Author:Robot.H
 * Created:20081117
 ---------------------------------------
*/
using System;
using System.Text.RegularExpressions;
using System.Runtime.Remoting.Contexts;
class app
{
    
static void Main()
    {
        
//生成random
        Random rand = new Random(Environment.TickCount);
        
int num = rand.Next(110000);

        
/*
       * 
http://news.sina.com.cn
       * 
http://news.sina.com.cn?page=1
       * 
http://news.sina.com.cn?page=1&ts=1341                            &&
       * 
http://news.sina.com.cn?ts=14321&page=1                        ?&
       * 
http://news.sina.com.cn?u=2&ts=14321&page=1                        &&
       
*/
        
string url = "http://news.sina.com.cn?u=2&ts=14321&page=1";
        
string ParamText = "ts";
        
string ParamValue = num.ToString();
        Console.WriteLine(BuildUrl( url,  ParamText,  ParamValue));
        Console.Read();
  
    }
    
//url里有key的值,就替换为value,没有的话就追加.
    public static string BuildUrl(string url, string ParamText, string ParamValue)
    {
        Regex reg 
= new Regex(string.Format("{0}=[^&]*",ParamText),RegexOptions.IgnoreCase);
        Regex reg1 
= new Regex("[&]{2,}", RegexOptions.IgnoreCase);
        
string _url = reg.Replace(url, "");
        
//_url = reg1.Replace(_url, "");
        if (_url.IndexOf("?"== -1)
            _url 
+= string.Format("?{0}={1}",ParamText,ParamValue);//?
        else
            _url 
+= string.Format("&{0}={1}", ParamText, ParamValue);//&
        _url = reg1.Replace(_url, "&");
        _url 
= _url.Replace("?&""?");
        
return _url;
    }
posted @ 2008-11-17 19:01  roboth  阅读(6938)  评论(0编辑  收藏  举报