Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过prolog的Http Post请求_Http_Post_Prolog_Swi Prolog - Fatal编程技术网

通过prolog的Http Post请求

通过prolog的Http Post请求,http,post,prolog,swi-prolog,Http,Post,Prolog,Swi Prolog,我正试图通过prolog向另一个RESTAPI发出post请求。如果我用js做这件事: body={ login="login", passsword="password" } axios.post("http://localhost:5000",body); 我并没有试图发布到prolog,而是试图从prolog发布到另一个api 我不知道如何将主体添加为json并将内容类型设置为application/json 这就是我到目前为止的想法: % Bibliotecas :- use_

我正试图通过prolog向另一个RESTAPI发出post请求。如果我用js做这件事:

body={

login="login",

passsword="password"

}

axios.post("http://localhost:5000",body);
我并没有试图发布到prolog,而是试图从prolog发布到另一个api

我不知道如何将主体添加为json并将内容类型设置为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请求,在它的主体中我有一封电子邮件和一个密码。我的最终目标是使用相同的电子邮件/密码向另一个api发出第二次post请求

有什么建议吗?

你可以使用http\u post/4

将向发送post请求http://localhost:5000/mypostpage

http_post([ protocol(http),
            host(localhost),
            port(5000),
            path('/mypostpage')
          ],
          form_data([ login = myusername,
                      password = pass123
                    ]),
          Reply,
          []).