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/2
和 option/3
.
比如客户端提交了headerThe-Field: x
,那么
member(the_field(Value), Request),
...
将产生 Value = x
.
我不完全理解 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/2
和 option/3
.
比如客户端提交了headerThe-Field: x
,那么
member(the_field(Value), Request), ...
将产生 Value = x
.