Golang - GET HTTP Request with Query Parameters

In this tutorial, we will show how to make an HTTP GET request call with query parameters in Golang.

In Go, you can make a GET request with query parameters using the net/http package.

Golang - GET HTTP Request with Query Parameters

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "net/url"
)

func main() {

    name := "Admin"
    occupation := "Engineer"

    params := "name=" + url.QueryEscape(name) + "&" +
        "occupation=" + url.QueryEscape(occupation)
    path := fmt.Sprintf("https://httpbin.org/get?%s", params)

    resp, err := http.Get(path)

    if err != nil {
        log.Fatal(err)
    }

    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)

    if err != nil {

        log.Fatal(err)
    }

    fmt.Println(string(body))
}

Note that the above example appends query parameters to the URL.

url.QueryEscape is used to properly encode the parameter values to handle special characters.

The log.Fatal function is used to handle errors by logging the error message and terminating the program.

The defer resp.Body.Close() ensures that the response body is closed once the request is finished.

Run the following command to execute the go_example.go file:

G:\GoLang\examples>go run go_example.go
{
  "args": {
    "name": "Admin",
    "occupation": "Engineer"
  },
  "headers": {
    "Accept-Encoding": "gzip",
    "Host": "httpbin.org",
    "User-Agent": "Go-http-client/2.0",
    "X-Amzn-Trace-Id": "Root=1-60d072dd-69515e203aad78b55270febd"
  },
  "origin": "103.208.69.12",
  "url": "https://httpbin.org/get?name=Admin&occupation=Engineer"
}

Comments