Merge pull request #1669 from aarroyoc/docs-http-open
Compatible Doclog docs for library(http/http_open).
This commit is contained in:
@@ -1,34 +1,37 @@
|
|||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Written 2022 by Adrián Arroyo Calle (adrian.arroyocalle@gmail.com)
|
Written 2022 by Adrián Arroyo Calle (adrian.arroyocalle@gmail.com)
|
||||||
Part of Scryer Prolog.
|
Part of Scryer Prolog.
|
||||||
|
*/
|
||||||
|
|
||||||
http_open(+Address, -Stream, +Options)
|
/** Make HTTP requests.
|
||||||
======================================
|
|
||||||
|
|
||||||
Yields Stream to read the body of an HTTP reply from Address.
|
This library contains the predicate http\_open/3 which allows you to perform HTTP(S) calls.
|
||||||
Address is a list of characters, and includes the method. Both HTTP
|
Useful for making API calls, or parsing websites. It uses Hyper underneath.
|
||||||
and HTTPS are supported.
|
*/
|
||||||
|
|
||||||
Options supported:
|
|
||||||
|
|
||||||
* method(+Method): Sets the HTTP method of the call. Method can be get (default), head, delete, post, put or patch.
|
|
||||||
* data(+Data): Data to be sent in the request. Useful for POST, PUT and PATCH operations.
|
|
||||||
* size(-Size): Unifies with the value of the Content-Length header
|
|
||||||
* request_headers(+RequestHeaders): Headers to be used in the request
|
|
||||||
* headers(-ListHeaders): Unifies with a list with all headers returned in the response
|
|
||||||
* status_code(-Code): Unifies with the status code of the request (200, 201, 404, ...)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
?- http_open("https://github.com/mthom/scryer-prolog", S, []).
|
|
||||||
%@ S = '$stream'(0x7fcfc9e00f00).
|
|
||||||
|
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
|
||||||
|
|
||||||
:- module(http_open, [http_open/3]).
|
:- module(http_open, [http_open/3]).
|
||||||
|
|
||||||
:- use_module(library(lists)).
|
:- use_module(library(lists)).
|
||||||
|
|
||||||
|
%% http_open(+Address, -Stream, +Options).
|
||||||
|
%
|
||||||
|
% Yields Stream to read the body of an HTTP reply from Address.
|
||||||
|
% Address is a list of characters, and includes the method. Both HTTP
|
||||||
|
% and HTTPS are supported.
|
||||||
|
%
|
||||||
|
% Options supported:
|
||||||
|
%
|
||||||
|
% * `method(+Method)`: Sets the HTTP method of the call. Method can be `get` (default), `head`, `delete`, `post`, `put` or `patch`.
|
||||||
|
% * `data(+Data)`: Data to be sent in the request. Useful for POST, PUT and PATCH operations.
|
||||||
|
% * `size(-Size)`: Unifies with the value of the Content-Length header
|
||||||
|
% * `request_headers(+RequestHeaders)`: Headers to be used in the request
|
||||||
|
% * `headers(-ListHeaders)`: Unifies with a list with all headers returned in the response
|
||||||
|
% * `status_code(-Code)`: Unifies with the status code of the request (200, 201, 404, ...)
|
||||||
|
%
|
||||||
|
% Example:
|
||||||
|
%
|
||||||
|
% ?- http_open("https://www.example.com", S, []), get_n_chars(S, N, HTML).
|
||||||
|
% S = '$stream'(0x7fb548001be8), N = 1256, HTML = "<!doctype html>\n<ht ...".
|
||||||
http_open(Address, Response, Options) :-
|
http_open(Address, Response, Options) :-
|
||||||
parse_http_options(Options, OptionValues),
|
parse_http_options(Options, OptionValues),
|
||||||
( member(method(Method), OptionValues) -> true; Method = get),
|
( member(method(Method), OptionValues) -> true; Method = get),
|
||||||
|
|||||||
Reference in New Issue
Block a user