猿问

如何接受来自 Go 的 POST 请求并将输出写入文件?

首先,我试图在 Go 中创建一个日志服务,它是一个轻量级服务器,接受来自我的服务的日志数据的 POST 请求。我正在用 Go 编写这个服务,因为它应该很快并且可以一次处理大量的 POST 请求。我的逻辑合理吗?


无论如何,这是我的问题。我正在发送这样的 POST 请求来测试: 

curl -H "Content-Type: application/json" -X POST -d '{"hello":"world"}' http://localhost:8080/log


到目前为止,这是我的 Go 脚本:


package main


import (

   "fmt"

   "log"

   "net/http"

)


func logger(w http.ResponseWriter, r *http.Request) {

   r.ParseForm()

   fmt.Println(r.Form)

   fmt.Println(r.FormValue("hello"))

}


func main() {

   http.HandleFunc("/log", logger)

   log.Fatal(http.ListenAndServe(":8080", nil))

}

它正在输出: map []


这是为什么?如何将 POST 数据写入服务器上的文件?


吃鸡游戏
浏览 266回答 2
2回答

POPMUISE

您不是在发布表单,而是在请求正文中发送 json 数据。直接读取数据:body, err := ioutil.ReadAll(r.Body)if err != nil {    log.Println("ERROR:", err)}
随时随地看视频慕课网APP

相关分类

Go
我要回答