- update
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
parent
d2b64554fc
commit
c29fa9c0bb
@ -1,70 +0,0 @@
|
||||
package gorequest
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// 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"` // 片段 #
|
||||
}
|
||||
|
||||
// UriParse 解析URl
|
||||
func UriParse(input string) (resp ResponseUrlParse) {
|
||||
parse, err := url.Parse(input)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
resp.Uri = input
|
||||
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 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
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package gorequest
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestUrlParse(t *testing.T) {
|
||||
t.Logf("%+v", UriParse("https://api.dtapp.net/ip?ip=127.0.0.1#history"))
|
||||
t.Logf("%+v", UriParse("https://test:abcd123@golangbyexample.com:8000/tutorials/intro?type=advance&compact=false#history"))
|
||||
t.Logf("%+v", UriFilterExcludeQueryString("/"))
|
||||
t.Logf("%+v", UriFilterExcludeQueryString("/favicon.ico"))
|
||||
t.Logf("%+v", UriFilterExcludeQueryString("/ip"))
|
||||
t.Logf("%+v", UriFilterExcludeQueryString("/ip?ip=127.0.0.1"))
|
||||
}
|
Loading…
Reference in new issue