parent
b893a2d58d
commit
982f835735
@ -1,11 +1,21 @@
|
|||||||
|
## v1.0.8 / 2021-05-31
|
||||||
|
|
||||||
|
- 【助手】增加url函数
|
||||||
|
- 【助手】增加规则验证函数
|
||||||
|
- 【助手】优化md5函数
|
||||||
|
|
||||||
## v0.0.7 / 2021-05-31
|
## v0.0.7 / 2021-05-31
|
||||||
|
|
||||||
- 【助手】增加请求函数
|
- 【助手】增加请求函数
|
||||||
|
|
||||||
## v0.0.6 / 2021-05-29
|
## v0.0.6 / 2021-05-29
|
||||||
|
|
||||||
- 【服务】修复拼多多参数
|
- 【服务】修复拼多多参数
|
||||||
|
|
||||||
## v0.0.5 / 2021-05-29
|
## v0.0.5 / 2021-05-29
|
||||||
|
|
||||||
- 增加拼多多联盟服务
|
- 增加拼多多联盟服务
|
||||||
|
|
||||||
## v0.0.4 / 2021-05-29
|
## v0.0.4 / 2021-05-29
|
||||||
|
|
||||||
- 优化
|
- 优化
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
package header
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Headers map[string]interface{}
|
||||||
|
|
||||||
|
func NewHeaders() Headers {
|
||||||
|
P := make(Headers)
|
||||||
|
return P
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Headers) Set(key string, value interface{}) {
|
||||||
|
p[key] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Headers) SetHeaders(headers Headers) {
|
||||||
|
for key, value := range headers {
|
||||||
|
p[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Headers) GetQuery() string {
|
||||||
|
u := url.Values{}
|
||||||
|
for k, v := range p {
|
||||||
|
u.Set(k, GetHeadersString(v))
|
||||||
|
}
|
||||||
|
return u.Encode()
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetHeadersString(i interface{}) string {
|
||||||
|
switch v := i.(type) {
|
||||||
|
case string:
|
||||||
|
return v
|
||||||
|
case []byte:
|
||||||
|
return string(v)
|
||||||
|
case int:
|
||||||
|
return strconv.Itoa(v)
|
||||||
|
case bool:
|
||||||
|
return strconv.FormatBool(v)
|
||||||
|
default:
|
||||||
|
bytes, _ := json.Marshal(v)
|
||||||
|
return string(bytes)
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
package params
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Params map[string]interface{}
|
||||||
|
|
||||||
|
func NewParams() Params {
|
||||||
|
P := make(Params)
|
||||||
|
return P
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewParamsWithType(params ...Params) Params {
|
||||||
|
p := make(Params)
|
||||||
|
for _, v := range params {
|
||||||
|
p.SetParams(v)
|
||||||
|
}
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Params) Set(key string, value interface{}) {
|
||||||
|
p[key] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Params) SetParams(params Params) {
|
||||||
|
for key, value := range params {
|
||||||
|
p[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p Params) GetQuery() string {
|
||||||
|
u := url.Values{}
|
||||||
|
for k, v := range p {
|
||||||
|
u.Set(k, GetParamsString(v))
|
||||||
|
}
|
||||||
|
return u.Encode()
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetParamsString(i interface{}) string {
|
||||||
|
switch v := i.(type) {
|
||||||
|
case string:
|
||||||
|
return v
|
||||||
|
case []byte:
|
||||||
|
return string(v)
|
||||||
|
case int:
|
||||||
|
return strconv.Itoa(v)
|
||||||
|
case bool:
|
||||||
|
return strconv.FormatBool(v)
|
||||||
|
default:
|
||||||
|
bytes, _ := json.Marshal(v)
|
||||||
|
return string(bytes)
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package url
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryHeaders 获取Headers参数 https://blog.csdn.net/qq_31387691/article/details/109312920
|
||||||
|
func QueryHeaders(url string) map[string][]string {
|
||||||
|
client := &http.Client{}
|
||||||
|
reqest, err := http.NewRequest("GET", url, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
response, _ := client.Do(reqest)
|
||||||
|
stdout := os.Stdout
|
||||||
|
_, err = io.Copy(stdout, response.Body)
|
||||||
|
headers := response.Header
|
||||||
|
return headers
|
||||||
|
}
|
Loading…
Reference in new issue