SWI-Prolog 阅读 http header

SWI-Prolog read http header

我不完全理解 SWI Prolog 是如何处理 http 的。我有以下代码,它主要与 get_header/1 不同。我需要能够 reader http 请求的 header 文件来获取值。我怎么做?我使用 http_read_header/2 吗?如果有怎么办?

:- http_handler(root(handle), myhandle,[]).

myhandle(Request):-
  get_header(H),
  http_read_json_dict(Request,DictIn),
  handle_dict(DictIn,DictOut),
  reply_json(DictOut).

get_header(H):-
  http_read_header(current_input, H),
  something(H).

首先,当post询问有关 HTTP 库的问题时,请提供完整代码

这意味着您用于 post 请求的服务器 客户端。

仅从您的问题来看,没有人知道您在做什么。这是有关 HTTP 库的典型问题,我希望将来会变得不那么常见。

其次,Request 已经 Name(Value) 个元素的列表。

客户端发送的任何 header 字段都包含 在此列表中。这只是查找此列表中的值的问题,使用对列表进行推理的典型谓词,例如 member/2option/3.

比如客户端提交了headerThe-Field: x,那么

member(the_field(Value), Request),
...

将产生 Value = x.