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

关于 go-curl 的 OPT_COOKIEJAR 选项的问题

关于 go-curl 的 OPT_COOKIEJAR 选项的问题

Go
holdtom 2022-10-10 18:57:11
在 go-curl 中使用 OPT_COOKIEJAR 选项时,有没有办法检查工作是否完成?如果你运行下面的源代码,就会出现一个问题,就是在cookie下载完成之前就执行了ReadFile。我想解决这个问题。  CommonSetopt(easy)  easy.Setopt(curl.OPT_VERBOSE, 0)  easy.Setopt(curl.OPT_COOKIEJAR, cookieName)  easy.Setopt(curl.OPT_URL, string("https://drive.google.com/uc?export=download&id="+gdriveID))  log.Println("start download cookie: ", url)  if err := easy.Perform(); err != nil {      log.Println("cookie download fail: ", err)      return  }  readBuf, err := ioutil.ReadFile(cookieName)  if err != nil {      log.Println("cookie read fail: ", err)      return  }
查看完整描述

1 回答

?
慕沐林林

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

您需要在之后立即清理会话,easy.Perform而不是使用defer语句进行清理


  CommonSetopt(easy)

  easy.Setopt(curl.OPT_VERBOSE, 0)

  easy.Setopt(curl.OPT_COOKIEJAR, cookieName)

  easy.Setopt(curl.OPT_URL, string("https://drive.google.com/uc?export=download&id="+gdriveID))


  log.Println("start download cookie: ", url)

  if err := easy.Perform(); err != nil {

      log.Println("cookie download fail: ", err)

      easy.Cleanup()

      return

  }

  // do cleanup

  easy.Cleanup()

  readBuf, err := ioutil.ReadFile(cookieName)

  if err != nil {

      log.Println("cookie read fail: ", err)

      return

  }


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

添加回答

举报

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