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

Dexador(usocket,fast-http)报"INVALID-VERSION"错误,本地请求失败求助

解决Dexador本地请求报错"INVALID-VERSION: invalid HTTP version"的问题

问题背景

原本正常的Dexador HTTP GET请求现在抛出INVALID-VERSION: invalid HTTP version错误,核心调用代码如下:

(dex:get url)

调用栈信息:

0: (FAST-HTTP.PARSER:PARSE-RESPONSE #<unavailable argument> #<unavailable argument> #<unavailable argument> :START #<unavailable argument> :END #<unavailable argument> :HEAD-REQUEST #<unavailable argumen..
1: ((LAMBDA (FAST-HTTP::DATA &KEY :START :END) :IN FAST-HTTP:MAKE-PARSER) #(123 34 100 97 116 97 ...) :START #<unavailable argument> :END #<unavailable argument>)
2: (DEXADOR.BACKEND.USOCKET::READ-RESPONSE #<SB-SYS:FD-STREAM for "socket 127.0.0.1:47894, peer: 127.0.0.1:8000" {10068825A3}> T NIL T)
3: (DEXADOR.BACKEND.USOCKET:REQUEST #<unavailable argument> :METHOD :GET))

关键现象:

  • 目标JSON接口用curl或drakma可正常访问
  • Dexador访问外部网络接口无异常,仅本地请求触发错误
  • 排查发现fast-http的parse-response方法中,parse-http-version被调用两次:第一次参数为major=1、minor=1,第二次为NIL,进而触发版本无效错误

排查与解决思路

1. 校验本地服务的响应格式

curl和drakma的HTTP解析容错性可能比fast-http更强,本地服务可能返回了不符合标准HTTP协议的响应。比如:

  • 响应头结束后存在多余的空白行
  • 响应内容开头有额外的无效字符
  • 响应被分割成了异常的数据包结构

可以通过抓包工具(如tcpdump)对比本地请求与外部请求的响应字节流,重点检查响应起始部分的格式是否合规。

2. 显式指定HTTP版本

尝试在Dexador请求中强制指定HTTP版本,避免解析器自动识别时出现异常:

(dex:get url :version :1.1)

3. 排查fast-http版本兼容性

当前使用的fast-http版本可能存在本地请求解析的bug,尝试升级或降级fast-http包,验证是否能解决重复调用parse-http-version的问题。

4. 检查本地网络干扰

本地代理、防火墙或调试工具可能篡改了响应数据,导致解析器异常。可以暂时关闭这类工具,重新发起请求测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:15:19