golang_https_request 发表于 2018-11-20 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768package mainimport ( "crypto/tls" "crypto/x509" "flag" "io/ioutil" "log" "net/http" "net/url" "strings")func main() { flag.Parse() // Load client cert cert, err := tls.LoadX509KeyPair("./server.crt","./server.key") if err != nil { log.Fatal(err) } // Load CA cert caCert, err := ioutil.ReadFile("./ca.crt") if err != nil { log.Fatal(err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) // Setup HTTPS client tlsConfig := &tls.Config{ RootCAs: caCertPool, Certificates: []tls.Certificate{cert}, InsecureSkipVerify: true, } tlsConfig.BuildNameToCertificate() transport := &http.Transport{TLSClientConfig: tlsConfig} client := &http.Client{Transport: transport} // Do POST something v :=url.Values{} v.Set("appId","xxxxxxxxxxxxxx") v.Set("secret","xxxxxxxxxxxxxxxxxxxx") body := strings.NewReader(v.Encode()) req, err := http.NewRequest("POST", "https://180.101.147.89:8743/iocm/app/sec/v1.1.0/login", body) if err != nil { log.Println("aaaaaaaaaaaa") log.Println(err) } req.Header.Add("Content-type", "application/x-www-form-urlencoded;param=value") resp, err := client.Do(req) if err != nil { log.Println("bbbbbbbbbbbbb") log.Println(err) } defer resp.Body.Close() log.Println(resp.Status) respData, err := ioutil.ReadAll(resp.Body) if err != nil { log.Println(err) } log.Println(string(respData))}