2 回答
TA贡献1851条经验 获得超5个赞
http.NewRequest(method, url, body)将有助于实现同样的目标。
req, err := http.NewRequest("GET", "http://example.com", nil)
// ...
req.Header.Add("If-None-Match", `W/"wyzzy"`)
resp, err := client.Do(req)
// ...
TA贡献1820条经验 获得超9个赞
Get 是用指针接收器声明的,即 而不是使用值接收器,即不是 。*http.Clienthttp.Client
错误:
invalid method expression http.Client.Get (needs pointer receiver: (*http.Client).Get)
就是这样说的。而且,它甚至提供了方法表达式的正确形式,即.(*http.Client).Get
这也意味着函数的签名必须相应地更改,即更改为 。client http.Clientclient *http.Client
type httpParameters struct {
Url string
Method func(*http.Client, string) (*http.Response, error)
Body []byte
}
func TestCallHTTP(t *testing.T) {
params := httpParameters{
Url: "https://postman-echo.com/get",
Method: (*http.Client).Get,
}
// ...
}
https://play.golang.org/p/83qgE4QeHx5
- 2 回答
- 0 关注
- 61 浏览
添加回答
举报