将curl转换为GOlang代码

时间:2015-12-20 12:16:46

标签: curl go

我是一名GO新手。我正在尝试将curl命令转换为GOlang。

curl --cacert "pki/ca.crt" \
  -H "Authorization: Bearer my_bearer_token" \
  --insecure \
  --max-time 5 --fail --output /dev/null --silent \
  "https://myserver/status"; do

这就是我所拥有的:

mTLSConfig := &tls.Config {
    CipherSuites: []uint16 {
        tls.TLS_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
    },
    InsecureSkipVerify: true, // --insecure
}
mTLSConfig.PreferServerCipherSuites = true
mTLSConfig.MinVersion = tls.VersionTLS10
mTLSConfig.MaxVersion = tls.VersionTLS10
certs := x509.NewCertPool()
certs.AppendCertsFromPEM([]byte(caCert))
mTLSConfig.RootCAs = certs
tr := &http.Transport{
    TLSClientConfig: mTLSConfig,
}

client := &http.Client{Transport: tr}
req, _ := http.NewRequest("GET", "https://myserver/status", nil)
req.Header.Set("Authorization", fmt.Sprintf("Bearer my_bearer_token"))
resp, err := client.Do(req)
glog.V(4).Info(resp, err)
if err != nil {
    return true
}
return false

我做得对吗?

1 个答案:

答案 0 :(得分:0)

您要查找的软件包是https://golang.org/pkg/crypto/x509

建立证书后,您就可以在其他REST客户端中使用它,例如普通休息, Resty 或您正在使用的任何其他客户端。

顺便说一句:我正在制作一系列有关Golang开发的视频。如果需要,可以在 this form 中添加您要我介绍的主题,并确保将它们全部包含在课程中。