/// <summary> /// /// </summary> /// <param name="url">url地址</param> public Url(string url) { if (string.IsNullOrEmpty(url)) { throw new BusinessException("url is not empty", HttpStatus.Err.Id); } var uri = new Uri(url); Host = uri.Host; RequestUrl = url.Split('?')[0].Trim(); UrlParameter = new UrlParameter(uri.Query); }
/// <summary> /// /// </summary> /// <param name="url">url地址</param> /// <param name="isUseHttps">是否是https,默认自动识别</param> public Url(string url, bool?isUseHttps) { if (string.IsNullOrEmpty(url)) { throw new BusinessException("url is not empty", HttpStatus.Err.Id); } var uri = new Uri(url); Host = uri.Host; if (isUseHttps == null) { Scheme = uri.Scheme; if (!(Scheme.Equals("http", StringComparison.CurrentCultureIgnoreCase) || Scheme.Equals("https", StringComparison.CurrentCultureIgnoreCase))) { Scheme = "http"; } IsHttps = Scheme.Equals("https", StringComparison.CurrentCultureIgnoreCase); } else { IsHttps = isUseHttps.Value; Scheme = IsHttps ? "https" : "http"; } RequestUrl = url.Split('?')[0].Trim(); RequestUrl = FormatUrl(RequestUrl, IsHttps); if (url.Split('?').Length > 1) { UrlParameter = new UrlParameter(url.Split('?')[1].Trim()); } else { UrlParameter = new UrlParameter(); } }
/// <summary> /// /// </summary> /// <param name="url">完整的url地址</param> /// <param name="isUseHttps">是否是https,默认自动识别</param> public Url(string url, bool?isUseHttps) { if (string.IsNullOrEmpty(url)) { throw new BusinessException("url is not empty", HttpStatus.Err.Id); } var uri = new Uri(url); Host = uri.Host; Scheme = uri.Scheme.ToLowers(); IsHttps = isUseHttps ?? Scheme.Equals("https", StringComparison.CurrentCultureIgnoreCase); PathAndQuery = uri.PathAndQuery; Path = PathAndQuery.Split('?')[0].Trim(); RequestUrl = url.Split('?')[0].Trim(); RequestUrl = FormatUrl(RequestUrl, IsHttps); if (url.Split('?').Length > 1) { UrlParameter = new UrlParameter(url.Split('?')[1].Trim()); } else { UrlParameter = new UrlParameter(); } }
/// <summary> /// 得到请求参数 /// 格式:参数1=参数值&参数2=参数值 /// </summary> /// <param name="isSort">是否排序</param> /// <param name="isUrlEncode">是否url编码</param> /// <param name="encoding">编码格式,默认UTF8</param> /// <returns></returns> public string GetQueryResult(bool isSort = false, bool isUrlEncode = false, Encoding encoding = null) { return(UrlParameter.GetQueryResult(isSort, isUrlEncode, encoding)); }