Module http_open
:- use_module(library(http/http_open)).
Make HTTP requests.
This library contains the predicate http_open/3
which allows you to perform HTTP(S) calls. Useful for making API calls, or parsing websites. It uses Hyper underneath.
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 beget
(default),head
,delete
,post
,put
orpatch
.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 headerrequest_headers(+RequestHeaders)
: Headers to be used in the requestheaders(-ListHeaders)
: Unifies with a list with all headers returned in the responsestatus_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 ...".