using System;
using System.Collections.Specialized;
using System.Net;
using System.Text;
using System.Web;
namespace CsharpHttpHelper.Helper
{
///
/// 和Url相关的帮助方法 Copyright:http://www.httphelper.com/
///
internal class HttpUrlHelper
{
///
/// 使用指定的编码对象将 URL 编码的字符串转换为已解码的字符串。
///
/// 指定的字符串
/// 指定编码默认为Default
///
internal static string URLDecode(string text, Encoding encoding = null)
{
if (encoding == null)
{
encoding = Encoding.Default;
}
return HttpUtility.UrlDecode(text, encoding);
}
///
/// 使用指定的编码对象对 URL 字符串进行编码。
///
/// 指定的字符串
/// 指定编码默认为Default
///
internal static string URLEncode(string text, Encoding encoding = null)
{
if (encoding == null)
{
encoding = Encoding.Default;
}
return HttpUtility.UrlEncode(text, encoding);
}
///
/// 将Url参数字符串转为一个Key和Value的集合
///
/// 要转为集合的字符串
/// NameValueCollection
internal static NameValueCollection GetNameValueCollection(string str)
{
NameValueCollection result = null;
try
{
result = HttpUtility.ParseQueryString(str);
}
catch
{
}
return result;
}
///
/// 提取网站主机部分就是host
///
/// url
/// host
internal static string GetUrlHost(string url)
{
try
{
return new Uri(url).Host;
}
catch
{
return string.Empty;
}
}
///
/// 提取网址对应的IP地址
///
/// url
/// 返回Url对应的IP地址
internal static string GetUrlIp(string url)
{
try
{
IPHostEntry hostByName = Dns.GetHostEntry(GetUrlHost(url));
//IPHostEntry hostByName = Dns.GetHostByName(GetUrlHost(url));
return hostByName.AddressList[0].ToString();
}
catch
{
return string.Empty;
}
}
///
/// 获取当前页面的URL(五个数字可选 1~5 )
///
/// 1完整url,2域名之后,3域名之后不含参数,4只有域名,5获取参数
///
public string getNowURL(int selectNO)
{
//string text = "";
switch (selectNO)
{
case 1:
return HttpContext.Current.Request.Url.ToString();
case 2:
return HttpContext.Current.Request.RawUrl;
case 3:
return HttpContext.Current.Request.Url.AbsolutePath;
case 4:
return HttpContext.Current.Request.Url.Host;
case 5:
return HttpContext.Current.Request.Url.Query;
default:
return HttpContext.Current.Request.Url.ToString();
}
}
}
}