I am trying to send the following data via a POST HTTP request to an API:
{ 
   "client_interface":{ 
      "source_address":source,
      "destination_address":destn,
      "message":encrypted_msg,
      "business_event_url":settings.Message_CallbackURL
   },
   "server_interface":{ 
      "message_id":msg_id
   }
}
The API is responding with the following error:
{ 
   "Meta":{ 
      "Requestid":12301343169471000
   },
   "Error":{ 
      "Message":"Request body contains badly-formed JSON (at position 51)",
      "Param":""
   }
}
CODE:
apiUrl := "http://example.com"
tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify : true},
}
jsonStr := []byte(`{
        "client_interface": {
          "source_address": source,
          "destination_address": destn,
          "message": encrypted_msg,
          "business_event_url": settings.Message_CallbackURL
        },
        "server_interface": {
          "message_id": msg_id
        }
    }`)
req, err := http.NewRequest("POST", apiUrl, bytes.NewBuffer(jsonStr)) 
fmt.Println("req..........",req)
if err!=nil{
    log.Println("err in http req..............",err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("requestid", msg_id)
req.Header.Set("Authorization", "Bearer "+conn_token)
client := &http.Client{Transport: tr}
resp, err := client.Do(req)
if resp!=nil{
    body, _ := ioutil.ReadAll(resp.Body)
}
Using struct :
package main
import (
    "fmt"
    "net/http"
    "io/ioutil"
    "bytes"
    //"crypto/tls"
    "encoding/json"
)
type client_interface struct {
        source_address string `json:"string"`
        destination_address uint64 `json:"uint64"`
        message string `json:"string"`
        business_event_url string `json:"string"`
    }
type server_interface struct { 
    message_id uint64 `json:"uint64"`
    }
type data struct {
    client_interface client_interface `json:"client_interface"`
    server_interface server_interface `json:"server_interface"`
}
func main() {
    url := "https://example.com"
    fmt.Println("URL:>", url)
    client_interface := client_interface{}
    server_interface := server_interface{}
    client_interface.source_address="1"
    client_interface.destination_address=1111111111
    client_interface.message="khsjhdjks"
    client_interface.business_event_url="http://callbackurl-hdfc"
    server_interface.message_id=8210993557215399651
    fmt.Println("server_interface..........",server_interface)
    fmt.Println("client_interface..........",client_interface)
    body1 := &data{
                client_interface: client_interface,
                server_interface: server_interface,
    }
    fmt.Println("body1..........",body1)
    t,e:=json.Marshal(body1)
    fmt.Println("t..........",t)            
    fmt.Println("e..........",e)            
    req, err := http.NewRequest("POST", url, bytes.NewReader(t))
    fmt.Println("req......",req)
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("requestid", "8210993557215399651")
    req.Header.Set("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkJCOENlRlZxeWFHckdOdWVoSklpTDRkZmp6dyIsImtpZCI6IkJCOENlRlZxeWFHckdOdWVoSklpTDRkZmp6dyJ9.eyJhdWQiOiJhcGk6Ly90cC1kZXYtdGFubGEtYXBpIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvY2JhYThhYmItZTcwZi00YmI4LWIwNDQtZmZiZjAwNzk0NzkwLyIsImlhdCI6MTU3NTg5MTI3NCwibmJmIjoxNTc1ODkxMjc0LCJleHAiOjE1NzU4OTUxNzQsImFjciI6IjEiLCJhaW8iOiI0MlZnWU9EY3JjenlhZXIxdkRMRDVlNHVtWUxha1UrRUplOVYrZGVlRFgrOTNUMytNRGNBIiwiYW1yIjpbInB3ZCJdLCJhcHBpZCI6IjFmMjI1N2ZlLWIzYjktNGQ2Ny05M2YyLWRjNjM2N2Q2MGM4MCIsImFwcGlkYWNyIjoiMCIsImlwYWRkciI6IjE0LjE0My4xODcuMjUwIiwibmFtZSI6ImhkZmMuMTEiLCJvaWQiOiIzOGQxMGFlNS01OGYyLTQ0NjUtYTFkOC04YTc0NDAzYjc5MmEiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiIzNDdUd0ZwYUw5MDhmOXlNRWlGOWNHMU84THFQYmJxZk45VzhyQWVEX1prIiwidGlkIjoiY2JhYThhYmItZTcwZi00YmI4LWIwNDQtZmZiZjAwNzk0NzkwIiwidW5pcXVlX25hbWUiOiJoZGZjLjExQFRhbmxhUHJvZHVjdC5vbm1pY3Jvc29mdC5jb20iLCJ1cG4iOiJoZGZjLjExQFRhbmxhUHJvZHVjdC5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiJuS05TTXRsT3VFeXMtQjRIOGJ3TEFRIiwidmVyIjoiMS4wIn0.F5H9WCOktau3JaqNyWM91A5jFpJ9eJE99fBWvqDq9kOfCk3OCJnHFKXtIaIA7MoqbxWpNZt1yWpVKuw8gd2Lg_9nfUvvXts2DJHVQN0EqQmFUyWTzhdLW8ZVi6E9RtXK2aEWrI2TVceL5C2wbYOQYfvV4LzjTuNbs6k_20cQ0nD6oO1Id16VVFQWy9yKvpDzsTrvlQdFBZeohIfyL9XWKa8DOk0gxe4bjC7OFmuMsF3FZE5XPaQPHOJ3ejlZJiApml2TlRHnvLpkn1biE3NTAu9aO2lE262lyLg8ZaU0sbPuQaS8P797a-outxLvKEMh07895mA9g6vMxEdRV9X2eA")
    client := &http.Client{}
    resp, err := client.Do(req)
    fmt.Println("err.............",err)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    fmt.Println("response Status:", resp.Status)
    fmt.Println("response Headers:", resp.Header)
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}
 
    