大家好,我有一个关于POST REQUEST的问题
我有一些像这样的python代码数据= {"name"Frank"age" 21日"nationality"["Britan",}
r =请求。帖子(somesite, json =数据)如何在GOLANG上发出类似的POST请求,我试着使用"nationality"; ["Britan"]但是我有一些错误。[]我试图使用map[string]字符串,但它不工作也许我可以用一些结构来解决我的问题
也许你应该使用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))
}
应该使用map[string]interface{}而不是map[string]string
作为这个链接(https://go.dev/blog/maps):
)地图[KeyType] ValueType
其中KeyType可以是任何可比较的类型,ValueType可以是任何类型,包括另一个映射!
你的身体有字符串和切片类型,所以ValueType是接口{}比字符串更好。