增加URL相关操作函数
This commit is contained in:
89
util/url.go
Normal file
89
util/url.go
Normal file
@ -0,0 +1,89 @@
|
||||
// Package util...
|
||||
//
|
||||
// Description : util...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2021-11-04 2:38 下午
|
||||
package util
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// URLParseResult url解析
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:51 下午 2021/11/4
|
||||
type URLParseResult struct {
|
||||
Scheme string `json:"scheme"`
|
||||
Domain string `json:"domain"`
|
||||
URI string `json:"uri"`
|
||||
Parameter map[string]string `json:"parameter"`
|
||||
}
|
||||
|
||||
// URLEncode ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:39 下午 2021/11/4
|
||||
func URLEncode(inputURL string) string {
|
||||
return url.QueryEscape(inputURL)
|
||||
}
|
||||
|
||||
// URLDecode ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:39 下午 2021/11/4
|
||||
func URLDecode(inputURL string) (string, error) {
|
||||
return url.QueryUnescape(inputURL)
|
||||
}
|
||||
|
||||
// URLParse url解析
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:39 下午 2021/11/4
|
||||
func URLParse(inputURL string) (*URLParseResult, error) {
|
||||
var (
|
||||
parseResult *url.URL
|
||||
err error
|
||||
)
|
||||
if parseResult, err = url.Parse(inputURL); nil != err {
|
||||
return nil, err
|
||||
}
|
||||
detail := &URLParseResult{
|
||||
Scheme: parseResult.Scheme,
|
||||
Domain: parseResult.Host,
|
||||
URI: parseResult.Path,
|
||||
Parameter: make(map[string]string),
|
||||
}
|
||||
for k, v := range parseResult.Query() {
|
||||
if len(v) > 1 {
|
||||
detail.Parameter[k] = "[" + strings.Join(v, ",") + "]"
|
||||
} else {
|
||||
detail.Parameter[k] = v[0]
|
||||
}
|
||||
}
|
||||
return detail, nil
|
||||
}
|
||||
|
||||
// BuildQueryURL 构建GET链接
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2:43 下午 2021/11/4
|
||||
func BuildQueryURL(apiURL string, parameter map[string]string) string {
|
||||
u := url.Values{}
|
||||
for k, v := range parameter {
|
||||
u.Set(k, v)
|
||||
}
|
||||
apiURL = strings.Trim(apiURL, "?")
|
||||
if strings.Contains(apiURL, "?") {
|
||||
return apiURL + "&" + u.Encode()
|
||||
}
|
||||
return apiURL + "?" + u.Encode()
|
||||
}
|
Reference in New Issue
Block a user