亮点
错误的请求现在会返回 400,而不是我们的 503。Single、Proxy Finder 和 Browser 会指出具体的错误字段,不收取任何费用,也不会再触发注定失败的重试。Budget 视图还将你付费购买的 credits 与请求实际消耗的 credits 进行了区分,修改密码现在会登出所有其他 Dashboard 会话。前两项更新可在 changelog 中查看。
更新内容
错误请求会明确指出问题所在
向 Single、Proxy Finder 或 Browser 发送无法运行的 body(例如缺少 url,或 timeout_ms 不是数字),你将收到 HTTP 400。error 会以 Invalid request: 开头,并列出最多五个出错字段及其原因。这是 client_error 结果,消耗 0 credits。
在本周之前,这些请求会返回通用的 503,这看起来像是我们服务的问题,并会促使重试循环继续尝试。如果你的客户端将 400 视为最终结果(我们的 错误参考 中的示例即是如此),输入错误现在会在第一次调用时直接终止运行:
import requests
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": "pk_live_..."},
json={"url": "https://example.com/data", "timeout_ms": "fast"},
)
if r.status_code == 400:
# "Invalid request: timeout_ms: ..." means fix the call, don't retry it
raise ValueError(r.json()["error"])
Auto 在此处的运行逻辑与之前一致。如果包含无法接受的字段,系统仍会在执行任何尝试前返回 HTTP 200,并附带 status: 400 以及位于 error 中的原因,且不收取任何费用。
计费与消耗点数对比展示
Metrics 下的 Budget 视图现已优先显示计费点数(仅成功请求消耗的点数),并在下方显示完整消耗情况(格式为“of N spent”)。每个请求的成本也按计费点数计算。按 key、域名或客户端 IP 划分的明细表中,针对每个数值均提供了可排序的列。
消耗点数统计了所有结果,因为失败的请求仍需要占用出口节点或浏览器才能确认失败。因此,这两列之间的差距逐个域名展示了未成功请求所耗费的资源量。
彻底登出机制
在 Settings 中修改密码、通过登录页面重置密码,或点击 Sign Out Others,即可登出所有登录到您账户的其他浏览器。发起该操作的当前浏览器将保持登录状态。登出操作现在也会在我们的服务端终止该会话,而不仅局限于您的浏览器。
密码重置页面现在采用与登录和注册相同的验证步骤。除非必要,该验证步骤不会主动弹出打扰。
Proxy Finder 与网关重定向
部分出口节点位于企业网络网关之后。上一期摘要介绍了直接返回自身登录页面的网关类型。Proxy Finder 现在还能识别重定向至登录服务的网关类型,将其计为失败尝试并切换至其他出口节点,而不是直接将该重定向作为目标站点的响应返回。
Dashboard 细节修复
- 当所选主体(Everything、Personal 或某个组织)尚未创建 API keys 时,Overview 和 Metrics 会在时间周期下方提示该状态,并引导创建 key。
- Overview 上的所有数值均以统一字号紧随其标签下方排列,以便整排面板在任何宽度下都能水平对齐阅读。Auto attempts 面板始终显示,若所选周期内没有 Auto 调用则显示为零。
- 对于仅提供单一计费周期的套餐,Subscribe 页面会隐藏 Monthly/Annual 切换开关。
- 对于我们为您配置的试用期,在升级页面选择其他套餐时,系统会要求绑定银行卡并在当天开启完整计费周期。支付成功后,试用期随即结束。
底层优化
对 api.foura.ai 和 eu.api.foura.ai 的调用现已由多台服务器协同处理,不再依赖单台服务器。如果某台服务器停止响应,新的调用会在几分钟内转移至其他服务器。
Auto 运行更加轻量。为调用挑选已保存会话的内部查找次数从以往的数十次减少至四次,同时每台服务器承载的 Auto 容量比以往更大,因此高峰时段 Auto 调用排队等待的时间得以缩短。
伴随 10 月的安全发布,所有引擎均已升级至当前的长期支持运行时,并且我们对 API、Dashboard、文档和博客涉及的库进行了补丁更新。在 Single 和 Proxy Finder 上,新运行时可防止在请求中途停止读取的单个出口拖慢该服务器上的其他请求。服务器在新版本重启前会停止接收新调用,并在通过健康检查后重新接入。
重试适用于那些需要等待的站点,而不是因为您自己的请求拼写错误。