import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")type UserInfo struct { ApiKey string `json:"apiKey"` UserId string `json:"userId"`}type Perception struct { InputText map[string]string `json:"inputText,omitempty"` InputImage map[string]string `json:"inputImage,omitempty"` SelfInfo map[string]*RequestLocation `json:"selfInfo,omitempty"`}type RequestLocation struct { City string `json:"city,omitempty"` Province string `json:"province,omitempty"` Street string `json:"street,omitempty"`}type RequestStruct struct { ReqType int `json:"reqType"` UserInfo *UserInfo `json:"userInfo"` Perception *Perception `json:"perception"`}type Test1 struct { Id string Age string Class string}type Test struct { Name string Test1 Test1}func main() { apiAddress := "http://openapi.tuling123.com/openapi/api/v2" requeStruct := &RequestStruct{0, &UserInfo{ApiKey: "231ae8807c384f41805802bdd4973638", UserId: "123456111"}, &Perception{InputText: map[string]string{"text": "今天的天氣如何"}, SelfInfo: map[string]*RequestLocation{"location": &RequestLocation{City: "北京"}}}} jsonByte, err := json.Marshal(requeStruct) if err != nil { fmt.Println(err.Error()) } else { fmt.Println(string(jsonByte)) } request, err := http.NewRequest("POST", apiAddress, bytes.NewBuffer(jsonByte)) if err != nil { fmt.Println(err.Error()) } request.Header.Set("Content-Type", "application/json;charset=UTF-8") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return } defer resp.Body.Close() respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return } fmt.Println(string(respBytes))}