在 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
}
- 1 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消