为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助使用 Go 更新 JSON 负载

需要帮助使用 Go 更新 JSON 负载

Go
饮歌长啸 2023-07-10 16:26:27
我是一名新手,尝试创建一个 Golang 脚本,该脚本从一个端点读取,然后更新一些字段并将其发布到不同的端点。对端点的 PUT 请求将此作为curl 命令。curl -v \     -X PUT -H 'X-Api-Key:{Key}' \     -H 'Content-Type: application/json' url/{id} \     -d '{ "name" : "Somename", "type": "Sometype", "status" : "enabled"}'我希望与发送 GET 请求的端点保持相同的名称和类型,但我希望在发布到其他端点时将状态从启用更改为禁用。因此,基本上我从一个端点获得的任何结果都将保持不变,除了我需要更改为禁用的状态。任何示例代码都会有所帮助。这是我到目前为止的代码,但它只是用于读取端点。所以不确定如何将两者结合起来。func main() {   req, _ := http.NewRequest("GET", "URL", nil)   req.Header.Set("X-Api-Key", <Key>)   resp, _ := http.DefaultClient.Do(req)   defer resp.Body.Close()   body, _ := ioutil.ReadAll(resp.Body)   var obj struct {       Library []struct {           Name     string `json:"name"`           Type      string `json:”type”`           Status      string `json:”status"`       } `json:”library"`   }   if err := json.Unmarshal(body, &obj); err != nil {       panic(err)   }   for _, app := range obj.Library {       fmt.Println(app.Name, app.Type, app.Status)   }}
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您已经快完成了,只需循环遍历库项目、更新状态并执行 http put 请求即可。


像这样的东西应该有效(未经测试):


for _, item := range obj.Library {

  item.Status = "disabled"

  bs, err := json.Marshal(item)

  // check err

  req, err := http.NewRequest("PUT", "url", bytes.NewBuffer(bs)) 

  // check err

  res, err := http.DefaultClient.Do(req)

  // check err

  // check res.StatusCode

}


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信