For those folks on windows who want to do http gets and posts directly from your PostgreSQL server, we've made binaries for the http extension for PostgreSQL Windows.
These are designed to work with PostgreSQL EDB windows distributions.
If you have PostGIS already installed, many of these files you will also already have since things like the libcurl and PCRE are also packaged with PostGIS.
http extension binaries for PostgreSQL 19, 18, 17, 16, 15, 14, 13, 12 11, 10, 9.6, 9.5, and 9.4 windows 64-bit downloads
PostgreSQL 17-19 64-bit are 1.7.1
PostgreSQL 16 and 15 are currently 1.6.1
PostgreSQL 10-14 64-bit are 1.5.0, other versions are older http versions.
The curl library for http is built with SSL support and utilizes the ssleasy.dll packaged with the EDB installs.
http extension binaries for PostgreSQL 10, 9.6, 9.5, and 9.4 windows 32-bit downloads
http quick primer
To enable in a database after having installed the binaries.
CREATE EXTENSION http;
Do a basic get
SELECT h.content, h.content_type, hkv.value As dt
FROM http_get('http://postgis.net/') AS h
LEFT JOIN LATERAL (SELECT *
FROM unnest(h.headers)
WHERE field = 'Date') AS hkv ON true;
Check out more examples at: https://github.com/pramsey/pgsql-http and https://github.com/pramsey/pgsql-openai.
http version 1.7 and up support setting any CURL settings via GUC variables. These can be set at the session, database, or system level.
This is particularly useful if for some reason your paths aren't set to ssl bundle or you are using a self-signed cert.
Older versions of http extension prior to 1.7, you'd use the http_set_curlopt which would last at most for the length of your session.
SELECT http_set_curlopt('CURLOPT_SSL_VERIFYPEER', '0');
SET http.CURLOPT_SSL_VERIFYPEER = '0';
SELECT h.content, h.content_type, hkv.value As dt
FROM http_get('https://postgis.net/') AS h
LEFT JOIN LATERAL (SELECT *
FROM unnest(h.headers)
WHERE field = 'Date') AS hkv ON true;