Files
chfei fa03add754 增加同步物流模块
修改现有架构,改为分模块( 简易版)
2026-09-22 17:52:42 +08:00

150 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace MAX.Core.Helpers;
public class UriHelper
{
#region 对外公开方法
/// <summary>
/// 带有前缀的域名
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string GetSchemeDomain(string url)
{
Uri uri = new(url);
return $"{uri.Scheme}://{uri.Authority}";
}
/// <summary>
/// 获取域名
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string GetDomain(string url)
{
Uri uri = new(url);
return uri.Host;
}
/// <summary>
/// 获取 URL
/// </summary>
/// <param name="url">URL 地址</param>
/// <returns></returns>
public static string GetUrl(string url)
{
Uri uri = new(url);
return uri.AbsolutePath;
}
/// <summary>
/// URL 解码
/// </summary>
/// <param name="url">URL 地址</param>
/// <returns></returns>
public static string UrlDecode(string url)
{
return System.Web.HttpUtility.UrlDecode(url);
}
/// <summary>
/// URL 解码
/// </summary>
/// <param name="url">URL 地址</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public static string UrlDecode(string url, Encoding encoding)
{
return System.Web.HttpUtility.UrlDecode(url, encoding);
}
/// <summary>
/// URL 编码
/// </summary>
/// <param name="url">URL 地址</param>
/// <returns></returns>
public static string UrlEncode(string url)
{
return System.Web.HttpUtility.UrlEncode(url);
}
/// <summary>
/// URL 编码
/// </summary>
/// <param name="url">URL 地址</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public static string UrlEncode(string url, Encoding encoding)
{
return System.Web.HttpUtility.UrlEncode(url, encoding);
}
/// <summary>
/// 获取参数列表
/// </summary>
/// <param name="url">Url 地址</param>
/// <returns></returns>
public static List<string> GetQueryList(string url)
{
return GetQueryList(url, Encoding.UTF8);
}
/// <summary>
/// 获取参数列表
/// </summary>
/// <param name="url">Url 地址</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public static List<string> GetQueryList(string url, Encoding encoding)
{
Uri uri = new(url);
string query = uri.PathAndQuery;
if (query.IndexOf(".") > 0)
{
query = query.Substring(0, query.IndexOf("."));
}
List<string> dataList = [];
string[] queryDataList = query.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
if (queryDataList != null && queryDataList.Length > 0)
{
foreach (string queryData in queryDataList)
{
dataList.Add(System.Web.HttpUtility.UrlDecode(queryData, encoding));
}
}
return dataList;
}
/// <summary>
/// 获取参数字典
/// </summary>
/// <param name="url">Url 地址</param>
/// <returns></returns>
public static Dictionary<string, string> GetQueryDict(string url)
{
return GetQueryDict(url, Encoding.UTF8);
}
/// <summary>
/// 获取参数字典
/// </summary>
/// <param name="url">Url 地址</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public static Dictionary<string, string> GetQueryDict(string url, Encoding encoding)
{
Uri uri = new(url);
string query = uri.Query.TrimStart(new char[] { '?' });
Dictionary<string, string> dataDict = [];
string[] queryDataList = query.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);
if (queryDataList != null && queryDataList.Length > 0)
{
foreach (string queryData in queryDataList)
{
string[] keyValue = queryData.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
if (!dataDict.ContainsKey(keyValue[0]))
{
dataDict.Add(keyValue[0].ToLower(), System.Web.HttpUtility.UrlDecode(keyValue[1], encoding));
}
}
}
return dataDict;
}
#endregion
}