package main import ( "fmt" "net/http" "encoding/json" "time" "bytes" "io" ) type UserStruct struct{ Age int `json:"age"` Name string `json:"name"` Email string `json:"email"` } func polz() (int, string, string) { fmt.Printf("Your age? ") var age int fmt.Scan(&age) fmt.Printf("Your name? ") var name string fmt.Scan(&name) fmt.Printf("Your email? ") var email string fmt.Scan(&email) return age, name, email } func main() { age, name, email := polz() user := UserStruct{ Age: age, Name: name, Email: email, } JsonData, err := json.Marshal(user) if err != nil { panic(err) } client := &http.Client{ Timeout: 5 * time.Second, } req, err := http.NewRequest("POST", "http://127.0.0.1:7777/user", bytes.NewBuffer(JsonData)) if err != nil { panic(err) } resp, err := client.Do(req) if err != nil { panic(err) } body, err := io.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Printf("status code %d\n", resp.StatusCode) fmt.Println(string(body)) }