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

调用API时出现requests.exceptions.ChunkedEncodingError问题求助

解决调用法国OpenFoodFacts API时出现的ChunkedEncodingError问题

嘿,这个错误确实大概率和网络有关,但也有其他可能,咱们一步步捋:

首先,先看你代码里的URL——https://fr.openfoodfacts.org/categories&json=1,这里参数分隔符用错了,应该是?而不是&,正确的URL应该是https://fr.openfoodfacts.org/categories?json=1。虽然你说昨天能运行,但服务器端可能对参数格式的兼容性有调整,这个小问题先修正试试。

接下来回到你问的网络问题:requests.exceptions.ChunkedEncodingError本质是请求过程中连接断开了,服务器发送的分块数据没传完就中断了,常见原因包括:

  • 你的网络不稳定:从路径看你用的是树莓派,WiFi信号弱、ISP临时波动都可能导致中途丢包,昨天能正常运行不代表今天网络没问题;
  • 服务器端临时故障/限流:OpenFoodFacts是公益项目,服务器可能偶尔负载过高,或者对你的请求频率做了限制,导致中途断开连接;
  • 缺少超时设置:你的请求没有设置超时,如果服务器响应慢,连接可能在等待过程中被中断。

给你几个解决办法:

  1. 修复URL参数:把&json=1改成?json=1,确保请求格式正确;
  2. 添加重试机制:用requests的重试适配器,自动重试失败的请求,避免单次网络波动导致失败;
  3. 设置超时时间:给requests.get加上timeout参数,比如timeout=10,避免无限等待;
  4. 测试网络连通性:用ping fr.openfoodfacts.org或者curl https://fr.openfoodfacts.org/categories?json=1测试一下,看看能不能正常获取数据。

这里是修改后的代码示例,加了重试和超时:

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

def categories_list():
    categories = []
    # 创建带重试的session
    session = requests.Session()
    retry = Retry(
        total=3,  # 总重试次数
        backoff_factor=1,  # 重试间隔时间(1s, 2s, 4s...)
        status_forcelist=[429, 500, 502, 503, 504]  # 遇到这些状态码重试
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount("https://", adapter)
    
    try:
        # 修复URL,添加超时
        response = session.get("https://fr.openfoodfacts.org/categories?json=1", timeout=10)
        response.raise_for_status()  # 抛出HTTP错误状态码的异常
        data = response.json()
        i = 0
        for category in data["tags"]:
            if category["products"] >= 1200:
                name = category["name"]
                categories.append(name)
                i += 1
        print(f"It's ok, imported {i}")
    except requests.exceptions.RequestException as e:
        print(f"请求出错: {e}")

categories_list()

你可以先试试修复URL,如果还是不行,再用带重试的版本,同时检查一下你的树莓派网络连接是否稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:18:10