我正在尝试填充结构并进行一些进一步的操作,我在结构中的字段已导出,但当我进行 curl 时该值未填充。
package main
import (
"encoding/json"
"io/ioutil"
"log"
"net/http"
"github.com/gorilla/mux"
)
type Y struct {
Name string `json:"name"`
EventType []string `json:"eventType"`
}
func main() {
router := mux.NewRouter()
router.HandleFunc("/config/export/eventtypes", eventTypes).Methods("GET")
router.HandleFunc("/config/export/ia/outputs", createEventList).Methods("POST")
http.ListenAndServe(":8000", router)
}
func eventTypes(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
var resp []map[string]string
x := make(map[string]string)
x["name"] = "HTTP"
x["description"] = "http"
resp = append(resp, x)
x1 := make(map[string]string)
x1["name"] = "KRB"
x1["description"] = "http"
resp = append(resp, x1)
x2 := make(map[string]string)
x2["name"] = "FileINFO"
x2["description"] = "http"
resp = append(resp, x2)
json.NewEncoder(w).Encode(resp)
}
func createEventList(w http.ResponseWriter, r *http.Request) {
var s Y
x, _ := ioutil.ReadAll(r.Body)
log.Printf("%v", string(x))
json.Unmarshal([]byte(x), &s)
log.Printf("%+v", s)
}
我正在测试这个,当我尝试使用 python 代码时curl -H "Content-Type: application/json" -X POST http://localhost:8000/config/export/ia/outputs -d'{"name":"test","eventType":"["http","dmtp"]"}',我的输出是{ []} 一样的
myobj = {"name":"test","eventType":test}
y= requests.post("http://localhost:8000/config/export/ia/outputs",json=myobj)
印刷{Name:test EventType:[HTTP KRB FileINFO]}
弑天下
相关分类