2

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?

5
2

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;
}
1
  • Please note that the foreach at the end is not complete. It's just there to demonstrate how to use it. You'll potentially also have to handle the Requests_Exception. – alpipego Apr 9 '18 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.