parent
7cf8704ec8
commit
d57ee8daaf
@ -1,5 +1,5 @@
|
|||||||
package golog
|
package golog
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Version = "1.0.71"
|
Version = "1.0.72"
|
||||||
)
|
)
|
||||||
|
@ -0,0 +1,78 @@
|
|||||||
|
package gorequest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/url"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UriParse struct {
|
||||||
|
uri string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewUri(uri string) *UriParse {
|
||||||
|
return &UriParse{uri: uri}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResponseUrlParse 返回参数
|
||||||
|
type ResponseUrlParse struct {
|
||||||
|
Uri string `json:"uri"` // URI
|
||||||
|
Urn string `json:"urn"` // URN
|
||||||
|
Url string `json:"url"` // URL
|
||||||
|
Scheme string `json:"scheme"` // 协议
|
||||||
|
Host string `json:"host"` // 主机
|
||||||
|
Hostname string `json:"hostname"` // 主机名
|
||||||
|
Port string `json:"port"` // 端口
|
||||||
|
Path string `json:"path"` // 路径
|
||||||
|
RawQuery string `json:"raw_query"` // 参数 ?
|
||||||
|
Fragment string `json:"fragment"` // 片段 #
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse 解析URl
|
||||||
|
func (u *UriParse) Parse() (resp ResponseUrlParse) {
|
||||||
|
parse, err := url.Parse(u.uri)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp.Uri = u.uri
|
||||||
|
resp.Urn = parse.Host + parse.Path
|
||||||
|
resp.Url = parse.Scheme + "://" + parse.Host + parse.Path
|
||||||
|
resp.Scheme = parse.Scheme
|
||||||
|
resp.Host = parse.Host
|
||||||
|
resp.Hostname = parse.Hostname()
|
||||||
|
resp.Port = parse.Port()
|
||||||
|
resp.Path = parse.Path
|
||||||
|
resp.RawQuery = parse.RawQuery
|
||||||
|
resp.Fragment = parse.Fragment
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UriFilterExcludeQueryString 过滤掉url中的参数
|
||||||
|
func (u *UriParse) UriFilterExcludeQueryString(uri string) string {
|
||||||
|
URL, _ := url.Parse(uri)
|
||||||
|
clearUri := strings.ReplaceAll(uri, URL.RawQuery, "")
|
||||||
|
clearUri = strings.TrimRight(clearUri, "?")
|
||||||
|
return strings.TrimRight(clearUri, "/")
|
||||||
|
}
|
||||||
|
|
||||||
|
// LenCode 编码
|
||||||
|
func LenCode(s string) string {
|
||||||
|
escape := url.QueryEscape(s)
|
||||||
|
return escape
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeCode 解码
|
||||||
|
func DeCode(s string) string {
|
||||||
|
unescape, _ := url.QueryUnescape(s)
|
||||||
|
return unescape
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParseQuery 获取URL参数 https://studygolang.com/articles/2876
|
||||||
|
func ParseQuery(s string) map[string][]string {
|
||||||
|
u, err := url.Parse(s)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
urlParam := u.RawQuery
|
||||||
|
m, _ := url.ParseQuery(urlParam)
|
||||||
|
return m
|
||||||
|
}
|
Loading…
Reference in new issue