Sending JSON Payload using Request::request_multiple()

You can’t.

The requests library that comes bundled in WordPress doesn’t support this. The reason for this is that the request_multiple function only accepts these parameters:

* @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request}

body is not one of those parameters, which explains why your request is failing. A reading of the code confirms this is the case down to the fsock/curl levels of the library.

Instead:

  • Perform non-parallel requests if you intend to continue using the Requests library
  • Switch to an alternative library such as Guzzle

I’d also recommend opening issues on GitHub, there doesn’t appear to be any technical reason it couldn’t be changed to support the body parameter other than that nobody added it when those interfaces were written