使用pycurl向FTX交易所发送GET请求时遭遇1010错误求助
问题分析与解决
首先明确:错误码1010是Cloudflare返回的防火墙拦截错误,和你设置的CA证书无关。
核心问题原因
- 请求URL无效:FTX的
https://ftx.com/api并非有效可访问的API端点,必须请求具体的接口路径,比如查询市场列表的https://ftx.com/api/markets。 - 缺少必要请求头:FTX的API要求请求携带
User-Agent标识,无此头的请求极易被Cloudflare防火墙判定为异常请求拦截。
修正后的代码
import pycurl import certifi from io import BytesIO buffer = BytesIO() c = pycurl.Curl() # 替换为FTX的具体API端点 c.setopt(c.URL, 'https://ftx.com/api/markets') # 添加User-Agent请求头,避免被防火墙拦截 c.setopt(c.HTTPHEADER, ['User-Agent: pycurl-client/1.0']) c.setopt(c.WRITEDATA, buffer) c.setopt(c.CAINFO, certifi.where()) c.perform() c.close() body = buffer.getvalue() # 优先用utf-8解码,FTX返回的是UTF-8编码的响应 print(body.decode('utf-8'))
补充说明
- 若调用需要认证的私有API接口,还需额外添加
FTX-KEY、FTX-SIGN、FTX-TS这几个认证头信息,具体规则可参考FTX官方API说明。 - 后续再遇到同类Cloudflare拦截错误,先检查三点:请求的端点是否正确、是否携带了必要的请求头、请求频率是否超出限制。
内容的提问来源于stack exchange,提问作者apt45
相关产品推荐
相关产品推荐

