如何在 Golang 中将标志变量传递给 http.Get

How to pass flag variable into http.Get in Golang

我有一段代码,它硬编码了我正在使用的 REST API 所需的 URL。我想做的是,使用这两个标志动态生成 URL。例如,效果为:

response, err := http.Get("https://swapi.co/api/%s/1", resourcePtr)

我目前的代码如下:

func main() {

    resourcePtr := flag.String("resource", "", "a string")
    idPtr := flag.Int("id", 1, "an int")

    flag.Parse()

    response, err := http.Get("https://swapi.co/api/planets/1")
    if err != nil {
        fmt.Printf("HTTP request failed with error %s\n", err)
    } else {
        data, _ := ioutil.ReadAll(response.Body)
        fmt.Println(string(data))
    }

}

提前致谢!

这就是 fmt.Sprintf (https://golang.org/pkg/fmt/#Sprintf) 的用途。

response, err := http.Get(fmt.Sprintf("https://swapi.co/api/%s/1", resourcePtr))