之前在百度查找过其他人的写法,要么是不完整的,要么就是代码太多,索性就自己写了一个,现在分享给大家。
一、根据参数,获取对应的值
public static string getQueryString(string name)
{
//1.获取站点名+页面名+参数
string url = Request.Url.PathAndQuery;
//2.把"%uxxxx"格式的Unicode转换成中文
url = HttpUtility.UrlDecode(url);
//3.匹配正则表达式
System.Text.RegularExpressions.Regex urlRegex = new Regex("(^?|&)" + name + "=([^&]*)(&|$)");
System.Text.RegularExpressions.Match m = urlRegex.Match(url);
string value = string.Empty;
if (m != null && m.Length>0)
{
Response.Write("m的结果是:"+m);
//用等于号拆分结果,再返回
value=m.ToString().Split('=')[1];
}
return value;
}
调用示例:
api.aspx的代码如下:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%
Response.Charset = "utf-8";
Response.ContentType = "text/html";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
string name=getQueryString("name");
Response.Write(name);
%>
<script language= "C# " runat="server">
string getQueryString(string name)
{
//1.获取站点名+页面名+参数
string url = Request.Url.PathAndQuery;
//2.把"%uxxxx"格式的Unicode转换成中文
url = HttpUtility.UrlDecode(url);
//3.匹配正则表达式
System.Text.RegularExpressions.Regex urlRegex = new Regex("(^?|&)" + name + "=([^&]*)(&|$)");
System.Text.RegularExpressions.Match m = urlRegex.Match(url);
string value = string.Empty;
if (m != null && m.Length>0)
{
Response.Write("m的结果是:"+m);
//用等于号拆分结果,再返回
value=m.ToString().Split('=')[1];
}
return value;
}
</script>
在浏览器访问 http://www.zy13.net/api.aspx?id=1&name=张三,会直接输出 “张三”
二、获取URL参数
假设当前完整网址是:http://www.zy13.net/pay/Default.aspx?id=5&name=xiao7
"http://"是协议名
"www.zy13.net"是域名
"pay"是站点名
"Default.aspx"是页面名(文件名)
"id=5&name=xiao7"是参数
1、获取 完整url (协议名+域名+站点名+文件名+参数)
string url=Request.Url.ToString();
url= http://www.zy13.net/pay/Default.aspx?id=5&name=xiao7
2、获取 站点名+页面名+参数
string url=Request.RawUrl;
(或 string url=Request.Url.PathAndQuery;)
url=/pay/Default.aspx?id=5&name=xiao7
3、获取 站点名+页面名
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或 string url= HttpContext.Current.Request.Path;)
url= /pay/Default.aspx
4、获取 域名
string url=HttpContext.Current.Request.Url.Host;
url= www.zy13.net
5、获取 参数
string url= HttpContext.Current.Request.Url.Query;
url= ?id=5&name=xiao7