With SSL:
curl -X GET https://puppetdb.example.com:8081/pdb/query/v4/resources \
--tlsv1 \
--cacert /etc/puppet/ssl/certs/ca.pem \
--cert /etc/puppet/ssl/certs/thisnode.pem \
--key /etc/puppet/ssl/private_keys/thisnode.pem \
--data-urlencode query@<filename>
This requires that you specify a certificate (issued by the same CA PuppetDB trusts), a private key, and a CA certificate.
In both examples, <filename> should be a file that contains the query to execute.