我正试图在Go中使用
net/http
使用api.ipify.org服务检索我的公共IP地址。只有在使用以下命令构建应用程序后,我才会遇到错误:
CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-s -w" -o ip get.go
然而,我注意到,当我使用以下任一命令时,代码运行得非常好:
go build get.go
go run get.go
以下是我正在使用的代码:
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func get() {
resp, err := http.Get("https://api.ipify.org")
if err == nil {
defer resp.Body.Close()
bodyBytes, _ := ioutil.ReadAll(resp.Body)
body := string(bodyBytes)
fmt.Println(body)
} else {
fmt.Println(err)
}
}
func main() {
get()
}
我很困惑为什么代码能与
go build
和
go run
但是当我使用更复杂的build命令时失败了。有人能帮我了解这个问题的原因以及我如何解决吗?感谢您的时间和帮助!