Go では、http.Client を使用してクエリ文字列パラメータを含む GET リクエストを送信できます。ただし、このタスクは見た目ほど単純ではない可能性があります。
この課題を克服するには、net/url パッケージを活用できます。その Values タイプは、クエリ文字列を構築するための便利なメカニズムを提供します。次の例を考えてみましょう。
import ( "fmt" "log" "net/http" "os" "net/url" ) func main() { // Create a new request object with an initial URL. req, err := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil) if err != nil { log.Print(err) os.Exit(1) } // Get the existing query parameters from the request URL. q := req.URL.Query() // Add your querystring parameters to the `q` map. q.Add("api_key", "key_from_environment_or_flag") q.Add("another_thing", "foo & bar") // Encode the updated `q` map into a raw querystring and set it in the request. req.URL.RawQuery = q.Encode() // Retrieve the final URL with the querystring for debugging purposes. fmt.Println(req.URL.String()) // Output: // http://api.themoviedb.org/3/tv/popular?another_thing=foo+%26+bar&api_key=key_from_environment_or_flag }
このコードは、文字列の連結に頼らずにクエリ文字列パラメータを動的に構築する方法を示しています。 url.Values の Encode メソッドは、特殊文字が送信用に適切にエンコードされることを保証します。
以上がGo の GET リクエストにクエリ文字列パラメータを効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。