151 lines
3.7 KiB
Go
151 lines
3.7 KiB
Go
package common
|
|
|
|
//
|
|
//import (
|
|
// "bytes"
|
|
// "crypto/tls"
|
|
// "crypto/x509"
|
|
// "dfp-open-sdk-go/config"
|
|
// "dfp-open-sdk-go/service"
|
|
// "dfp-open-sdk-go/util"
|
|
// "encoding/json"
|
|
// "io/ioutil"
|
|
// "net/http"
|
|
// "strings"
|
|
// "unsafe"
|
|
//)
|
|
//
|
|
//type HttpsPostRequest struct {
|
|
//}
|
|
//
|
|
//func (request *HttpsPostRequest) Send(url string, method string, authInfo string, headParams map[string]string, bodyParamString string, bodyString string) {
|
|
// newRequest, err := http.NewRequest("POST", url, nil)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
// var tr *http.Transport
|
|
// // 如果是开发环境并且是https是开头
|
|
// if strings.HasPrefix(url, "https") {
|
|
// tr = &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true}}
|
|
// }
|
|
//
|
|
// file, err := ioutil.ReadFile("./ca.cert")
|
|
// pool := x509.NewCertPool()
|
|
// pool.AppendCertsFromPEM(file)
|
|
//
|
|
// cliCert, _ := tls.LoadX509KeyPair("./client.crt", "./client.key")
|
|
//
|
|
// config := &tls.Config{
|
|
// Certificates: []tls.Certificate{cliCert}, // 客户端证书, 双向认证必须携带
|
|
// RootCAs: pool, // 校验服务端证书 [CA证书]
|
|
// InsecureSkipVerify: false, // 不用校验服务器证书
|
|
// }
|
|
//
|
|
// config.BuildNameToCertificate()
|
|
// client := http.Client{Transport: tr}
|
|
//
|
|
// // 设置请求头
|
|
// newRequest.Header.Set("Authorization", authInfo)
|
|
// // 设置cfca
|
|
// newRequest.Header.Set("X-Cfca-Basic", "")
|
|
//
|
|
// if headParams != nil {
|
|
// for k, v := range headParams {
|
|
// newRequest.Header.Set(k, v)
|
|
// }
|
|
// }
|
|
//
|
|
// // 灰度发布配置
|
|
// if json.Valid([]byte(bodyString)) {
|
|
// bodyParamString = bodyString
|
|
// newRequest.Header.Set("Content-Type", "application/json; charset=UTF-8")
|
|
// }
|
|
//
|
|
// switch method {
|
|
// case http.MethodPost:
|
|
// http.Post("1", "application/atom+xml", nil)
|
|
// resp, err := client.Do(newRequest)
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
// contentType := resp.Header.Get("Content-Type")
|
|
// if contentType == "application/octet-stream" {
|
|
//
|
|
// } else {
|
|
// str := (*string)(unsafe.Pointer(&respBytes))
|
|
// }
|
|
// if resp.StatusCode >= http.StatusOK && resp.StatusCode < http.StatusMultipleChoices {
|
|
//
|
|
// }
|
|
// all, err := ioutil.ReadAll(resp.Body)
|
|
// break
|
|
// case http.MethodPut:
|
|
// client.Do(newRequest)
|
|
// break
|
|
// case http.MethodDelete:
|
|
// client.Do(newRequest)
|
|
// break
|
|
// default:
|
|
// break
|
|
// }
|
|
//
|
|
// resp, err := client.Post(url)
|
|
//
|
|
//}
|
|
//
|
|
//func Exec(url string, method string, authInfo string, headParams map[string]string, urlParams map[string]string,
|
|
// bodyParamMap map[string]string, filePath string, keyConfigure config.KeyConfigure, bodyJson string) {
|
|
// signParams := make(map[string]string)
|
|
//
|
|
// if headParams != nil {
|
|
// for k, v := range headParams {
|
|
// signParams[k] = v
|
|
// }
|
|
// }
|
|
//
|
|
// if urlParams != nil {
|
|
// for k, v := range urlParams {
|
|
// signParams[k] = v
|
|
// }
|
|
// }
|
|
//
|
|
// if bodyParamMap != nil {
|
|
// for k, v := range bodyParamMap {
|
|
// signParams[k] = v
|
|
// }
|
|
// }
|
|
//
|
|
// reqUri := util.CheckReqUri(url)
|
|
//
|
|
// authInfo = service.GetAuthInfo(method, reqUri, signParams, keyConfigure)
|
|
//
|
|
// urlParamString := util.JointMap(urlParams)
|
|
// bodyParamString := util.JointMap(bodyParamMap)
|
|
//
|
|
// buffer := bytes.Buffer{}
|
|
//
|
|
// buffer.WriteString(getPostUrl())
|
|
//
|
|
// buffer.WriteString(reqUri)
|
|
//
|
|
// switch method {
|
|
// case http.MethodGet:
|
|
// case http.MethodPost:
|
|
// if urlParamString != "" {
|
|
// if strings.Contains(buffer.String(), "?") {
|
|
// buffer.WriteString("&")
|
|
// } else {
|
|
// buffer.WriteString("?")
|
|
// }
|
|
// buffer.WriteString(urlParamString)
|
|
// }
|
|
// break
|
|
// default:
|
|
// break
|
|
// }
|
|
//
|
|
// response := service.Txn(buffer.String(), method, authInfo, headParams, bodyParamString, filePath, bodyParamMap, keyConfigure, bodyJson)
|
|
//
|
|
// return response
|
|
//}
|