post abstract method
Sends a POST request and returns the raw status code and body.
timeout is advisory; implementations should honor it when supported and
surface timeouts as exceptions rather than swallowing them.
Implementation
Future<HttpResponse> post({
required String url,
required String body,
required Map<String, String> headers,
Duration? timeout,
});