WordPress wp_remote_post vs wp_remote_request

You should be able to use both wp_remote_request() and wp_remote_post() for a ‘POST’ request, as they are just wrappers for the same WP_Http::request method that supports the methods:

'GET', 'POST', 'HEAD', 'PUT', 
'DELETE', 'TRACE', 'OPTIONS', 'PATCH'.

and the default one is ‘GET’.

The difference is that wp_remote_post() function has the ‘POST’ method explicitly set via WP_Http::post that’s also a wrapper for WP_Http::request.