Form Daten per POST senden, Rückgabe ist JSON. Beispiel ist von einer Keycloak Implementierung um einen JWT anzufordern.
package main import ( "net/http" "net/url" "encoding/json" "fmt" "log" ) func main () { username := "test" password := "password" auth_url := "https://localhost:9443" realm := "test_realm" // Get JWT Token form := url.Values{} form.Add("grant_type", "password") form.Add("username", username) form.Add("password", password) form.Add("client_id", "auth") hc := http.Client{} url := fmt.Sprintf("%v/auth/realms/%v/protocol/openid-connect/token", auth_url, realm) req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode())) req.PostForm = form req.Header.Add("Content-Type", "application/x-www-form-urlencoded") resp, err := hc.Do(req) var res map[string]interface{} json.NewDecoder(resp.Body).Decode(&res) token, exists := res["access_token"] if exists == false { log.Fatalln("No token") } }