Http POST导致:返回的参数太多
我在使用Http POST导致:返回的参数太多,post,go,Post,Go,我在使用Golang执行POST时遇到一些问题。使用下面的代码 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", "appl
Golang
执行POST
时遇到一些问题。使用下面的代码
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
}
我得到以下错误:
返回的参数太多,have(string),want()
这个错误是什么意思?如何修复此问题?错误完全正确。您的函数签名是:
func Postfunc(w http.ResponseWriter , rep *http.Request)
它没有返回值。因此,您的最后一行:
return p
有太多的参数,这将是任何参数。如果要将文本写入HTTP响应,请使用ResponseWriter
:
w.Write(bodyText)
这个错误是完全正确的。您的函数签名是:
func Postfunc(w http.ResponseWriter , rep *http.Request)
它没有返回值。因此,您的最后一行:
return p
有太多的参数,这将是任何参数。如果要将文本写入HTTP响应,请使用ResponseWriter
:
w.Write(bodyText)
因此,转到第62行,您正在调用一个不返回任何内容的函数,但您正在执行
x=func()
或x:=func()
除了@Adrian的正确答案之外,您还在NewRequest
中使用“url”
。我不知道这是不是故意的。另一件事,您应该通过在bodyText之前添加err来检查请求的状态是否为200
代码>类似于if resp!=200{fmt.Println(“接收到无效响应…”)}
。因此,转到第62行,您正在调用一个不返回任何内容的函数,但您正在执行x=func()
或x:=func()
除了@Adrian的正确答案之外,您还在NewRequest
中使用“url”
。我不知道这是不是故意的。另一件事,您应该通过在bodyText之前添加err来检查请求的状态是否为200
代码>类似于if resp!=200{fmt.Println(“收到无效响应…”)}
。