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

TIdHTTP 10.5498版本是否需手动设置Header折叠?

关于TIdHTTP 10.5.498中Header行折叠的问题解答

首先,针对你的疑问,我可以明确给出以下结论和实操建议:

1. 先理清Indy 10.5.4(即你使用的10.5498版本)的关键行为

  • 你提到的TIdCustomHTTP.Post里强制切换到HTTP 1.0的逻辑,确实存在于这个版本中——当发送application/x-www-form-urlencoded类型的POST请求时,Indy会默认将协议版本改成1.0,无视你初始的设置。
  • 至于TIdHTTPProtocol.BuildAndSendRequest里的TODO: 为HTTP 1.0请求禁用Header折叠注释,这只是一个未实现的开发计划而已。在10.5.4版本中,Indy并没有实际禁用HTTP 1.0请求的Header折叠,也就是说只要FoldLines属性为True,折叠逻辑就会生效。

2. 匹配服务器要求的配置方案

你的服务器要求Header行超过998字符时才折叠,但Indy默认的FoldLength是78——这意味着默认情况下Header会在78字符就被折叠,远早于服务器要求的阈值。所以你必须手动修改相关属性,不能依赖默认设置:

IdHTTP1.Request.CustomHeaders.FoldLines := True; // 虽默认是True,但显式设置更保险
IdHTTP1.Request.CustomHeaders.FoldLength := 998; // 完全匹配服务器要求的最大长度

另外,考虑到HTTP 1.0对Header折叠的支持并不如HTTP 1.1规范,建议你在发起POST请求前手动指定使用HTTP 1.1,避免潜在的兼容性问题:

IdHTTP1.ProtocolVersion := pv1_1;

这样能确保请求符合更规范的HTTP 1.1标准,服务器对折叠Header的处理也会更可靠。

3. 验证建议

你可以用抓包工具(比如Wireshark)抓取实际发送的请求包,查看Header是否按照预期在998字符处进行折叠,这是最直接的验证方式,能确保你的配置完全符合服务器要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:46:49