124 lines
3.0 KiB
C#
124 lines
3.0 KiB
C#
|
using System;
|
|||
|
using System.Collections.Specialized;
|
|||
|
using System.Net;
|
|||
|
using System.Text;
|
|||
|
using System.Web;
|
|||
|
|
|||
|
namespace CsharpHttpHelper.Helper
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 和Url相关的帮助方法 Copyright:http://www.httphelper.com/
|
|||
|
/// </summary>
|
|||
|
internal class HttpUrlHelper
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 使用指定的编码对象将 URL 编码的字符串转换为已解码的字符串。
|
|||
|
/// </summary>
|
|||
|
/// <param name="text">指定的字符串</param>
|
|||
|
/// <param name="encoding">指定编码默认为Default</param>
|
|||
|
/// <returns></returns>
|
|||
|
internal static string URLDecode(string text, Encoding encoding = null)
|
|||
|
{
|
|||
|
if (encoding == null)
|
|||
|
{
|
|||
|
encoding = Encoding.Default;
|
|||
|
}
|
|||
|
return HttpUtility.UrlDecode(text, encoding);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 使用指定的编码对象对 URL 字符串进行编码。
|
|||
|
/// </summary>
|
|||
|
/// <param name="text">指定的字符串</param>
|
|||
|
/// <param name="encoding">指定编码默认为Default</param>
|
|||
|
/// <returns></returns>
|
|||
|
internal static string URLEncode(string text, Encoding encoding = null)
|
|||
|
{
|
|||
|
if (encoding == null)
|
|||
|
{
|
|||
|
encoding = Encoding.Default;
|
|||
|
}
|
|||
|
return HttpUtility.UrlEncode(text, encoding);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 将Url参数字符串转为一个Key和Value的集合
|
|||
|
/// </summary>
|
|||
|
/// <param name="str">要转为集合的字符串</param>
|
|||
|
/// <returns>NameValueCollection</returns>
|
|||
|
internal static NameValueCollection GetNameValueCollection(string str)
|
|||
|
{
|
|||
|
NameValueCollection result = null;
|
|||
|
try
|
|||
|
{
|
|||
|
result = HttpUtility.ParseQueryString(str);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 提取网站主机部分就是host
|
|||
|
/// </summary>
|
|||
|
/// <param name="url">url</param>
|
|||
|
/// <returns>host</returns>
|
|||
|
internal static string GetUrlHost(string url)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
return new Uri(url).Host;
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
return string.Empty;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 提取网址对应的IP地址
|
|||
|
/// </summary>
|
|||
|
/// <param name="url">url</param>
|
|||
|
/// <returns>返回Url对应的IP地址</returns>
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取当前页面的URL(五个数字可选 1~5 )
|
|||
|
/// </summary>
|
|||
|
/// <param name="selectNO">1完整url,2域名之后,3域名之后不含参数,4只有域名,5获取参数</param>
|
|||
|
/// <returns></returns>
|
|||
|
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|