我正在努力创建一个用于管理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创建一个[]bytesbytes.Buffer实现http.NewRequest所需的io.Reader接口(interface)。

07-26 01:02