:- use_module(library(http/http_header)). [det]http_post_data(+Data, 
+Out:stream, +HdrExtra)
[det]http_post_data(+Data, 
+Out:stream, +HdrExtra)http_client.pl 
to send the POST data to the server. Data is one of:
html(+Tokens) Result of html//1 
from html_write.pljson(+Term) Posting a JSON query and processing the 
JSON reply (or any other reply understood by http_read_data/3) 
is simple as
http_post(URL, json(Term), Reply, []), where Term is a JSON 
term as described in json.pl and reply is of the same 
format if the server replies with JSON, when using module :- use_module(library(http/http_json)). 
Note that the module is used in both http server and http client, see
library(http/http_json).xml(+Term) Post the result of xml_write/3 
using the Mime-type
text/xmlxml(+Type, +Term) Post the result of xml_write/3 
using the given Mime-type and an empty option list to xml_write/3.xml(+Type, +Term, +Options) Post the result of xml_write/3 
using the given Mime-type and option list for xml_write/3.file(+File) Send contents of a file. Mime-type is 
determined by
file_mime_type/2.file(+Type, +File) Send file with content of indicated 
mime-type.memory_file(+Type, +Handle) Similar to file(+Type, +File), 
but using a memory file instead of a real file. See new_memory_file/1.codes(+Codes) As codes(text/plain, Codes).codes(+Type, +Codes) Send Codes using the indicated 
MIME-type.bytes(+Type, +Bytes) Send Bytes using the indicated 
MIME-type. Bytes is either a string of character codes 0..255 or list of 
integers in the range 0..255. Out-of-bound codes result in a 
representation error exception.atom(+Atom) As atom(text/plain, Atom).atom(+Type, +Atom) Send Atom using the indicated 
MIME-type.string(+String)string(+Type, +String) Similar to atom(Atom) 
and atom(Type,Atom), accepting a SWI-Prolog string.cgi_stream(+Stream, +Len) Read the input from Stream 
which, like CGI data starts with a partial HTTP header. The fields of 
this header are merged with the provided HdrExtra fields. The 
first Len characters of Stream are used.form(+ListOfParameter) Send data of the MIME type 
application/x-www-form-urlencoded as produced by browsers issuing a POST 
request from an HTML form. ListOfParameter is a list of Name=Value or 
Name(Value).form_data(+ListOfData) Send data of the MIME type multipart/form-data 
as produced by browsers issuing a POST request from an HTML form using 
enctype multipart/form-data. ListOfData is the same as for 
the List alternative described below. Below is an example. Repository, 
etc. are atoms providing the value, while the last argument provides a 
value from a file.
...,
http_post([ protocol(http),
            host(Host),
            port(Port),
            path(ActionPath)
          ],
          form_data([ repository = Repository,
                      dataFormat = DataFormat,
                      baseURI    = BaseURI,
                      verifyData = Verify,
                      data       = file(File)
                    ]),
          _Reply,
          []),
...,