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 //}