Итак, я попытался что-то на основании примера here в моем коде и не получил никаких данных, но не ошибся. Код:JSON-декодирование в golang
import (
"io"
"fmt"
"net/http"
"encoding/json"
)
type Credential struct {
username string `json:"username"`
password string `json:"password"`
}
func login(res http.ResponseWriter, req *http.Request) {
if req.Method == "POST" {
cred := Credential{}
err := json.NewDecoder(req.Body).Decode(&cred)
if err != nil {
panic("can't decode")
}
fmt.Println("credentials: " + cred.username + " , " + cred.password)
}
}
Испытываю с
завитка -X POST -H "Accept: приложения/JSON" --data "{\" имя пользователя \ ": \" х \», \ "пароль \": \ "у \"}»127.0.0.1:8000/login -i
И сервер печатает:
учетные данные:,
Почему в cred.username и cred.password ничего нет?
Возможно, это не связано, но всегда рекомендуется указывать тип содержимого в заголовке, а также -H "Content-Type: application/json". – kichik