diff --git a/src/gowww/client/client.go b/src/gowww/client/client.go
index b75aec2cc51c48abc26a42d13f5b323b12db3087..67039e8169861e18827295723d529fea842b5fdd 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)
 }