json.Marshal如何体内http.newRequest

Gia*_*Arb 8 json type-conversion go

我正在努力创建一个用于管理数字海洋飞沫的小控制台,这是我第一次体验Go ..

我有这个错误

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)
Run Code Online (Sandbox Code Playgroud)

如何为func NewRequest转换为良好类型值的s []字节?!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)
Run Code Online (Sandbox Code Playgroud)

谢谢!

fab*_*ioM 20

正如@elithrar所说 bytes.NewBuffer

b := bytes.NewBuffer(s)
http.NewRequest(..., b) 
Run Code Online (Sandbox Code Playgroud)

这将创建一个*bytes.Buffer[]bytes.并bytes.Buffer实现http.NewRequest需要的io.Reader接口.