2 回答
TA贡献1783条经验 获得超5个赞
也许你应该使用map[string]interface{}
或者您也可以strings.NewReader直接使用发送请求
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:8080"
method := "POST"
payload := strings.NewReader(`{
"name": "Flank",
"age": 21,
"nationality": ["Britan"]
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
TA贡献1111条经验 获得超0个赞
你应该使用 map[string]interface{} 而不是 map[string]string
作为此链接(https://go.dev/blog/maps):
映射[键类型]值类型
其中 KeyType 可以是任何可比较的类型,而 ValueType 可以是任何类型,包括另一个映射!
你的 body 既有 string 又有 slice 类型,所以 ValueType 是 interface{} 比 string 好。
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报
