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

SWI-Prolog如何移除reply_html_page自动插入的meta标签及添加Content-Length头

移除自动插入的content-type meta标签

SWI-Prolog的reply_html_page默认插入该meta标签是为了声明页面编码,你只需要在头部配置项中加入encoding(false)即可关闭这个自动行为,修改后的调用代码如下:

reply_html_page(
    [title('Fortunes'), encoding(false)],
    [table([
        ...
    ])]
).

响应携带Content-Length头

SWI-Prolog的HTTP服务默认使用分块传输(chunked),因此默认不会返回Content-Length头。你可以通过以下两种方案实现:

  • 方案1:禁用分块传输,服务端会自动计算内容长度并添加对应响应头。使用reply_html_page/4重载版本,第一个参数传入响应配置chunked(false)即可:
    reply_html_page(
        [chunked(false)],
        [title('Fortunes'), encoding(false)],
        [table([
            ...
        ])]
    ).
    
  • 方案2:手动序列化HTML内容计算长度,适合需要自定义控制的场景:
    % 先生成HTML内容字节列表
    phrase(reply_html_page([title('Fortunes'), encoding(false)], [table(...)]), Bytes),
    length(Bytes, Len),
    % 手动输出响应头
    format('Content-Type: text/html~n'),
    format('Content-Length: ~d~n~n', [Len]),
    % 输出内容
    format('~s', [Bytes]).
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:57:03