Вы устанавливаете тип контента на application/x-www-form-urlencoded
во время отправки данных в формате json, поэтому измените тип контента при настройке заголовков запроса, а также не пропускайте ошибку, чтобы проверить, что это за ошибка.:
parsedData, err := json.Marshal(data)
if err != nil{
fmt.Println(err)
}
req, err := http.NewRequest(method, url, parsedData) // send the parseData which are bytes returned from the marshal.
if err != nil{
fmt.Println(err)
}
req.Header.Set("Content-Type", "application/json") // set the content type to json
go func() { // Must be a goroutine
response, err := client.Do(req)
if err != nil{
fmt.Println(err)
}
defer response.Body.Close()
}()
// you should check for response status to verify the details as
fmt.Println("response Status:", response.Status)
fmt.Println("response Headers:", response.Header)
body, _ := ioutil.ReadAll(response.Body)
fmt.Println("response Body:", string(body))
Одна вещь, которую следует учитывать, это то, что вы не экспортировали свои поля структуры.Это может быть причиной того, что ваша строка JSON становится пустой.Сделайте ваши поля структуры экспортируемыми, сделав их первую букву каждого поля заглавными.