我在尝试使用POST
执行Golang
时遇到了一些麻烦。使用下面的代码
func Postfunc(w http.ResponseWriter , rep *http.Request) {
var jsonStr = []byte(`{"id":"10012"}`)
req, err := http.NewRequest("POST", "url", bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/Text")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
fmt.Println("responce Status:", resp.Status)
fmt.Println("responce Headers:", resp.Header)
defer resp.Body.Close()
bodyText, err := ioutil.ReadAll(resp.Body)
fmt.Println("responce Body:", string(bodyText))
p := string(bodyText)
return p
}
我收到以下错误:
too many arguments to return, have (string), want ()
这个错误是什么意思?我该如何解决这个问题?
答案 0 :(得分:2)
错误完全正确。您的功能签名是:
func Postfunc(w http.ResponseWriter , rep *http.Request)
它没有返回值。因此,你的最后一行:
return p
有太多的论据,根本就是任何论据。如果要将文本写入HTTP响应,请使用ResponseWriter
:
w.Write(bodyText)