Я использую Postman для размещения строки json на localhost. JSON строка, И переходящая в Почтальон:Request Body is null in Go lang (Postman)
{
“name”: "foo"
}
Однако, когда я получить данные в моей тестовой функции, то req.Body
я получить что-то вроде этого: &{%!s(*io.LimitedReader=&{0xc0820142a0 0}) <nil> %!s(*bufio.Reader=<nil>) %!s(bool=false) %!s(bool=true) {%!s(int32=0) %!s(uint32=0)} %!s(bool=true) %!s(bool=false) %!s(bool=false)}
Я хочу, чтобы получить имя: Foo в орган запроса.
Мой идти языки код то же:
import (
"encoding/json"
"fmt"
"net/http"
)
type Input struct {
Name string `json:"name"`
}
func test(rw http.ResponseWriter, req *http.Request) {
var t Input
json.NewDecoder(req.Body).Decode(&t)
fmt.Fprintf(rw, "%s\n", req.Body)
}
func main() {
http.HandleFunc("/test", test)
http.ListenAndServe(":8080", nil)
}
Может кто-нибудь сказать мне, почему я получаю пустые данные в атрибуте req.Body? Большое спасибо.
Вы должны напечатать 't' not' req.Body' и ** please **: обрабатывать каждую ошибку. – Volker
@Volker: Я пробовал это. Печать t дает мне пустое '{}'. Ничего внутри: ( –
Как вы напечатали 't'? Как' '% s", t.name' или '"% # v ", t'. Вывод" {} "кажется странным и обрабатывает каждую ошибку. – Volker