my/go/l19/l2.go
2026-06-26 19:56:18 +03:00

72 lines
1.3 KiB
Go

package main
import (
"fmt"
"net/http"
"encoding/json"
"time"
"bytes"
"io"
"strings"
)
type UserStruct struct{
Age int `json:"age"`
Name string `json:"name"`
Email string `json:"email"`
Alive bool `json:"alive"`
}
func polz() (int, string, string, bool) {
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)
fmt.Printf("Your alive?(y/n) ")
var live string
fmt.Scan(&live)
LowerLive := strings.ToLower(live)
var alive bool
if LowerLive == "y" {
alive = true
} else if LowerLive == "n" {
alive = false
}
return age, name, email, alive
}
func main() {
age, name, email, alive := polz()
user := UserStruct{
Age: age,
Name: name,
Email: email,
Alive: alive,
}
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))
}