You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现add_cart函数报错重试加sleep延时,解决脚本停止运行问题

代码问题修正说明

现存问题整理

  • 缺少requests库导入语句,调用requests.post会直接抛出未定义报错,这是VS Code终端无法运行的核心原因
  • 仅完成add_cart函数定义,未在代码末尾添加实际调用逻辑,脚本运行后不会执行加购逻辑,直接退出
  • 现有重试逻辑仅打印日志,没有实际重复调用add_cart的代码
  • 未在调用函数前添加2秒等待的逻辑

修正后完整代码

import json
from datetime import datetime
import time
import os
import requests  # 新增缺失的requests库导入

cookies = {
    # 你的隐私内容保持不变
}

headers = {
    # 你的隐私内容保持不变
}

atcPayload = {
    # 你的隐私内容保持不变
}

def add_cart(cookies, headers, atcPayload, max_retry=3):
    retry_count = 0
    while retry_count < max_retry:
        response = requests.post('apiurl', headers=headers, cookies=cookies, data=atcPayload)
        # 新增状态码校验,避免接口异常时json解析报错
        if response.status_code != 200:
            print(f"请求异常,状态码:{response.status_code},1秒后重试")
            retry_count +=1
            time.sleep(1)
            continue
        data = response.json()
        print("adding")
        if data["error"] == 'true':
            print("retrying cart")
            retry_count +=1
            time.sleep(1)
        else:
            print("加购成功")
            return True
    print(f"达到最大重试次数{max_retry},加购失败")
    return False

# 执行逻辑:先等待2秒,再调用加购函数
if __name__ == "__main__":
    time.sleep(2)
    add_cart(cookies, headers, atcPayload)

调整说明

  1. 新增import requests导入语句,解决依赖缺失的运行报错
  2. 新增if __name__ == "__main__"入口判断,符合Python脚本规范
  3. 入口处先执行time.sleep(2)满足2秒等待的需求,再调用加购函数
  4. 函数内补充完整重试逻辑,设置默认最大重试次数为3,避免无限重试占用资源
  5. 新增响应状态码校验逻辑,避免接口返回非200状态时JSON解析报错导致脚本崩溃

内容的提问来源于stack exchange,提问作者Steve Olla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:54:04