猿问

执行 GET 请求并构建查询字符串

我对 Go 还很陌生,目前还不太了解所有内容。在许多现代语言 Node.js、Angular、jQuery、PHP 中,您可以使用附加查询字符串参数执行 GET 请求。


在 Go 中执行此操作并不像看起来那么简单,我目前还无法真正弄清楚。我真的不想为我想做的每个请求连接一个字符串。


这是示例脚本:


package main


import (

    "fmt"

    "io/ioutil"

    "net/http"

)


func main() {

    client := &http.Client{}


    req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil)

    req.Header.Add("Accept", "application/json")

    resp, err := client.Do(req)


    if err != nil {

        fmt.Println("Errored when sending request to the server")

        return

    }


    defer resp.Body.Close()

    resp_body, _ := ioutil.ReadAll(resp.Body)


    fmt.Println(resp.Status)

    fmt.Println(string(resp_body))

}

在此示例中,您可以看到有一个 URL,它需要 api_key 的 GET 变量,并将您的 api 密钥作为值。问题是这变成了以下形式的硬编码:


req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular?api_key=mySuperAwesomeApiKey", nil)

有没有办法动态构建这个查询字符串?目前,我需要在此步骤之前组合 URL 以获得有效响应。


阿波罗的战车
浏览 217回答 3
3回答
随时随地看视频慕课网APP

相关分类

Go
我要回答