This question already has an answer here:
- Unmarshalling json in golang 1 answer
I have an API which accepts a request body like this:
The content-type is application/json.
{
"firstname": "foo",
"surname": "bar",
"age": 10,
"group":"test"
}
The request goes through when I use a client like Postman.
However, the same request fails from Go:
type Student struct {
firstname string
surname string
age int
group string
}
student:= Student{"foo", "bar", 10, "test"}
b, err := json.Marshal(student)
rest := restCall("POST", "http://api", b, "xyz123")
func restCall(method string, url string, body []byte, token string) {
req, _ := http.NewRequest(method, url, bytes.NewReader(body))
req.Header.Add("Authorization", token)
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
}
I get an internal HTTP 500 error stating :
Mandatory parameter 'group' is missing.
But, I did pass it as you can see from my code.
</div>