gpt4 book ai didi

json.Marshal 如何处理 http.newRequest 的主体

转载 作者:IT王子 更新时间:2023-10-29 01:10:25 27 4
gpt4 key购买 nike

我正在努力创建一个用于管理 DigitalOcean Droplets 的小控制台,但我遇到了这个错误:

cannot use s (type []byte) as type io.Reader in argument to http.NewRequest:[]byte does not implement io.Reader (missing Read method)

如何将 s []bytes 转换为适合 func 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 创建一个 *bytes.Bufferbytes.Buffer 实现了 http.NewRequest 需要的 io.Reader 接口(interface)。

关于json.Marshal 如何处理 http.newRequest 的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com