trivial-http
trivial-http is a simple HTTP client library.

If you just need simple HTTP operations (no chunking, no flexi-streams, etc,) then trivial-http may be what you're looking for.

Homepage: https://common-lisp.net/project/trivial-http/

Depends on: usocket

Quick assessment (2023-03-06)

Works for HTTP:

? (trivial-http:http-get "http://localhost/favicon.ico") (200 ((:SERVER . "nginx") (:DATE . "Mon, 06 Mar 2023 20:21:54 GMT") (:CONTENT-TYPE . "image/x-icon") (:CONTENT-LENGTH . "1350") (:CONNECTION . "close") (:EXPIRES . "Wed, 05 Apr 2023 20:21:54 GMT") (:CACHE-CONTROL . "max-age=2592000") (:X-CONTENT-TYPE-OPTIONS . "nosniff") (:ACCEPT-RANGES . "bytes")) #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/1704) #x210143E61D>)

Doesn't work for HTTPS:

? (trivial-http:http-get "https://cliki.net/") > Error: Failed assertion: (STRING-EQUAL TRIVIAL-HTTP::URL "http://" :END1 7) > While executing: CCL::%ASSERTION-FAILURE, in process listener(1). > Type :GO to continue, :POP to abort, :R for a list of available restarts. > If continued: test the assertion again. > Type :? for other options.

No surprise there.


trivial, MIT-LICENSE