我正在努力创建一个用于管理DigitalOcean Droplets的小型控制台,这是我第一次使用Go。
我有这个错误:
如何将funt s []bytes
的值转换为合适的NewRequest
值? NewRequest
期望使用Body
..类型的io.Reader
。
s, _ := json.Marshal(r);
// convert type
req, _ := http.NewRequest("GET", "https://api.digitalocean.com/v2/droplets", s)
req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token))
req.Header.Set("Content-Type", "application/json")
response, _ := client.Do(req)
谢谢!
最佳答案
正如@elithrar所说的,使用bytes.NewBuffer
b := bytes.NewBuffer(s)
http.NewRequest(..., b)
这将从
*bytes.Buffer
创建一个[]bytes
。 bytes.Buffer
实现http.NewRequest
所需的io.Reader接口(interface)。