How to run multiple Async HTTP requests in WordPress?

In my plugin, I want to call 10 or more HTTP requests asynchronously in WordPress so that I need not wait for the response of anyone. Is there any way in WordPress that supports this and also compatible with different WordPress versions?

1
1

The (built-in) Requests class lets you call multiple requests simultaneously: Requests::request_multiple.

<?php

$requests = Requests::request_multiple([
    [
        'url' => 'https://www.mocky.io/v2/5acb821f2f00005300411631',
        'type' => 'GET',
        'headers' => [
            'Accept' => 'application/json'
        ],

    ],
    [
        'url' => 'https://www.mocky.io/v2/5acb821f2f00005300411631',
        'type' => 'POST',
        'headers' => [
            'Accept' => 'application/json'
        ],
        'data' => json_encode([
            'text' => 'My POST Data'
        ])
    ],
    [
        'url' => 'https://www.mocky.io/v2/5acb82ee2f00005100411635',
        'type' => 'POST',
        'headers' => [
            'Accept' => 'application/json'
        ],
        'data' => json_encode([
            'text' => 'More POST Data'
        ])
    ],  
]);

foreach ($request as $request) {
    if ($request->status_code !== 200) {
        // handle error
    }
    // handle success
    echo $request->body;
}

Leave a Comment