From 9a9d8818cad7bd350bd5e29b463e72f800af9391 Mon Sep 17 00:00:00 2001 From: Marcus Schiesser <mail@marcusschiesser.de> Date: Thu, 13 Apr 2023 11:54:51 +0200 Subject: [PATCH] implement POST request for gowww client --- src/gowww/client/client.go | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/gowww/client/client.go b/src/gowww/client/client.go index b75aec2..67039e8 100644 --- a/src/gowww/client/client.go +++ b/src/gowww/client/client.go @@ -1,7 +1,8 @@ package main import ( - "io" + "bytes" + "encoding/json" "log" "net/http" ) @@ -10,16 +11,31 @@ const ( url = "http://localhost:8080/hellowww" ) +type helloWWWRequest struct { + Name string `json:"name"` +} + +type helloWWWResponse struct { + Message string `json:"message"` +} + func main() { - log.Printf("Calling service %s\n", url) - resp, err := http.Get(url) + log.Printf("Client is sending a request to %v\n", url) + request := helloWWWRequest{Name: "Marcus"} + data, err := json.Marshal(&request) if err != nil { - log.Fatalf("Error reading from %s\n%#v", url, err) + log.Fatalf("Error while marshalling request: %v", err) + } + resp, err := http.Post(url, "application/json", bytes.NewBuffer(data)) + if err != nil { + log.Fatalf("Error while sending request %s: %v", url, err) } defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) + decoder := json.NewDecoder(resp.Body) + var response helloWWWResponse + err = decoder.Decode(&response) if err != nil { log.Fatalf("Error reading from %s\n%#v", url, err) } - log.Printf("Result: %s", body) + log.Printf("Message: %s", response.Message) } -- GitLab