我正在尝试使用 net/http 将 json 文件发布到 ElasticSearch。通常在 Curl 中,我会执行以下操作:
curl -XPOST localhost:9200/prod/aws -d @aws.json
在 golang 中,我使用了一个示例,但没有奏效。我可以看到它发布,但必须设置不正确。我已经测试了我正在使用的 JSON 文件,一切顺利。
去代码:
target_url := "http://localhost:9200/prod/aws"
body_buf := bytes.NewBufferString("")
body_writer := multipart.NewWriter(body_buf)
jsonfile := "aws.json"
file_writer, err := body_writer.CreateFormFile("upfile", jsonfile)
if err != nil {
fmt.Println("error writing to buffer")
return
}
fh, err := os.Open(jsonfile)
if err != nil {
fmt.Println("error opening file")
return
}
io.Copy(file_writer, fh)
body_writer.Close()
http.Post(target_url, "application/json", body_buf)
相关分类