Http POST导致:返回的参数太多

时间:2017-05-23 20:12:45

标签: post go

我在尝试使用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 ()

这个错误是什么意思?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

错误完全正确。您的功能签名是:

func Postfunc(w http.ResponseWriter , rep *http.Request)

它没有返回值。因此,你的最后一行:

return  p

有太多的论据,根本就是任何论据。如果要将文本写入HTTP响应,请使用ResponseWriter

w.Write(bodyText)