Http Post 通过 prolog 请求
Http Post request via prolog
我正在尝试通过 prolog 向另一个 rest api 发出 post 请求。类似的东西(如果我在 js 中这样做):
body={
login="login",
passsword="password"
}
axios.post("http://localhost:5000",body);
我不是想 post 到序言,我是想 post 从序言到另一个 api。
我不知道如何将正文添加为 json 并将 Content-Type 设置为 application/json。
这是我到目前为止的想法:
% Bibliotecas
:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- use_module(library(http/http_parameters)).
:- use_module(library(http/http_ssl_plugin)).
:- use_module(library(http/http_open)).
:- use_module(library(http/http_json)).
% Routes
:- http_handler('/auth', auth, []).
:- http_handler('/send_file_post', send_file_post, []).
% Cria��o de servidor HTTP no porto 'Port'
server(Port) :-
http_server(http_dispatch, [port(Port)]).
auth(Request) :-
http_read_json(Request, DictIn,[json_object(dict)]),
format(user_output,"Request is: ~p~n",[Request]),
format(user_output,"DictIn is: ~p~n",[DictIn]),
DictOut=DictIn,
reply_json(DictOut),
http_client:http_post('http://localhost:5000/api/users/authenticate', DictOut,Reply, [content("application/json")]),
http_read_data(Reply, Data, []).
添加进一步说明:
我向我的 prolog http 服务器发出了一个 post 请求,在它的正文中我有一个电子邮件和一个密码。我的最终目标是用相同的 email/password.
向另一个 api 发出第二个 post 请求
有什么建议吗?
您可以使用 http_post/4
.
https://www.swi-prolog.org/pldoc/doc_for?object=http_post/4
http_post([ protocol(http),
host(localhost),
port(5000),
path('/mypostpage')
],
form_data([ login = myusername,
password = pass123
]),
Reply,
[]).
将向 http://localhost:5000/mypostpage
发送 post 请求
我正在尝试通过 prolog 向另一个 rest api 发出 post 请求。类似的东西(如果我在 js 中这样做):
body={
login="login",
passsword="password"
}
axios.post("http://localhost:5000",body);
我不是想 post 到序言,我是想 post 从序言到另一个 api。
我不知道如何将正文添加为 json 并将 Content-Type 设置为 application/json。
这是我到目前为止的想法:
% Bibliotecas
:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- use_module(library(http/http_parameters)).
:- use_module(library(http/http_ssl_plugin)).
:- use_module(library(http/http_open)).
:- use_module(library(http/http_json)).
% Routes
:- http_handler('/auth', auth, []).
:- http_handler('/send_file_post', send_file_post, []).
% Cria��o de servidor HTTP no porto 'Port'
server(Port) :-
http_server(http_dispatch, [port(Port)]).
auth(Request) :-
http_read_json(Request, DictIn,[json_object(dict)]),
format(user_output,"Request is: ~p~n",[Request]),
format(user_output,"DictIn is: ~p~n",[DictIn]),
DictOut=DictIn,
reply_json(DictOut),
http_client:http_post('http://localhost:5000/api/users/authenticate', DictOut,Reply, [content("application/json")]),
http_read_data(Reply, Data, []).
添加进一步说明:
我向我的 prolog http 服务器发出了一个 post 请求,在它的正文中我有一个电子邮件和一个密码。我的最终目标是用相同的 email/password.
向另一个 api 发出第二个 post 请求有什么建议吗?
您可以使用 http_post/4
.
https://www.swi-prolog.org/pldoc/doc_for?object=http_post/4
http_post([ protocol(http),
host(localhost),
port(5000),
path('/mypostpage')
],
form_data([ login = myusername,
password = pass123
]),
Reply,
[]).
将向 http://localhost:5000/mypostpage