2025-02-19 18:30:19 +08:00
|
|
|
package conn
|
|
|
|
|
|
|
|
import (
|
|
|
|
"crypto/tls"
|
|
|
|
"io"
|
|
|
|
"io/ioutil"
|
|
|
|
"log"
|
|
|
|
"net/http"
|
|
|
|
"net/url"
|
|
|
|
)
|
|
|
|
|
|
|
|
// headers := map[string]string{
|
|
|
|
// "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
|
|
// }
|
2025-02-27 22:14:36 +08:00
|
|
|
func DT_POST(urls string, headers map[string]string, bytess io.Reader) string {
|
2025-02-19 18:30:19 +08:00
|
|
|
url, err := url.Parse(urls)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
|
|
|
// 创建一个 POST 请求
|
|
|
|
r, err := http.NewRequest(http.MethodPost, url.String(), bytess)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// // 设置请求头
|
|
|
|
// req.Header.Set("Content-Type", "application/json")
|
|
|
|
// 使用 map 动态设置请求头 // 设置请求头 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
|
|
|
for key, value := range headers {
|
|
|
|
r.Header.Set(key, value) // 使用 Set 方法设置请求头
|
|
|
|
}
|
|
|
|
// 创建一个 HTTP 客户端,跳过证书验证
|
|
|
|
tr := &http.Transport{
|
|
|
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
|
|
}
|
|
|
|
// 发送请求
|
|
|
|
client := &http.Client{Transport: tr}
|
|
|
|
resp, err := client.Do(r)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
// 检查响应状态码
|
|
|
|
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
|
|
|
|
log.Printf("server returned: %s", resp.Status)
|
|
|
|
}
|
|
|
|
|
|
|
|
// 读取响应体内容
|
|
|
|
body, err := ioutil.ReadAll(resp.Body)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
2025-02-27 22:14:36 +08:00
|
|
|
// log.Println(string(body))
|
|
|
|
return string(body)
|
2025-02-19 18:30:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// req 请求体 url 请求地址 headers请求头
|
2025-02-28 18:23:02 +08:00
|
|
|
func DT_GET(urls string, headers map[string]string, bytess io.Reader) string {
|
2025-02-19 18:30:19 +08:00
|
|
|
url, err := url.Parse(urls)
|
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
// 创建一个 POST 请求
|
|
|
|
r, err := http.NewRequest(http.MethodGet, url.String(), bytess)
|
2025-02-19 18:30:19 +08:00
|
|
|
if err != nil {
|
2025-02-28 18:23:02 +08:00
|
|
|
log.Println(err)
|
2025-02-19 18:30:19 +08:00
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
|
|
|
|
// // 设置请求头
|
|
|
|
// req.Header.Set("Content-Type", "application/json")
|
|
|
|
// 使用 map 动态设置请求头 // 设置请求头 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
2025-02-19 18:30:19 +08:00
|
|
|
for key, value := range headers {
|
|
|
|
r.Header.Set(key, value) // 使用 Set 方法设置请求头
|
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
// 创建一个 HTTP 客户端,跳过证书验证
|
|
|
|
tr := &http.Transport{
|
|
|
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
|
|
}
|
|
|
|
// 发送请求
|
|
|
|
client := &http.Client{Transport: tr}
|
|
|
|
resp, err := client.Do(r)
|
2025-02-19 18:30:19 +08:00
|
|
|
if err != nil {
|
|
|
|
log.Println(err)
|
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
// 检查响应状态码
|
|
|
|
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
|
|
|
|
log.Printf("server returned: %s", resp.Status)
|
2025-02-19 18:30:19 +08:00
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
|
|
|
|
// 读取响应体内容
|
|
|
|
body, err := ioutil.ReadAll(resp.Body)
|
|
|
|
if err != nil {
|
2025-02-19 18:30:19 +08:00
|
|
|
log.Println(err)
|
|
|
|
}
|
2025-02-28 18:23:02 +08:00
|
|
|
// log.Println(string(body))
|
|
|
|
return string(body)
|
2025-02-27 18:37:03 +08:00
|
|
|
}
|