mateodioev / async-curl-requests
Multi requests async with php
Installs: 43
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 3
Open Issues: 0
Type:project
Requires
- php: >=8.0.0
This package is auto-updated.
Last update: 2025-02-17 22:48:28 UTC
README
Create new request
$req = new Req(); $promise = array(); $promise[] = $req::Get('https://httpbin.org/get'); // GET method $promise[] = $req::Post('https://httpbin.org/post'); // POST method $promise[] = $req::Put('https://httpbin.org/put'); // CUSTOM method
Run all request
$response = Run::Async($promise);
Proxy sintax
# PROXY (http/s, socks4, socks5) $server = [ "METHOD" => "TUNNEL", "SERVER" => "ip:port" ]; # Windscribe $server = [ "METHOD" => "CUSTOM", "SERVER" = "socks5h://socks-us.windscribe.com:1080", "AUTH" => "w07l3gbt-r6vxdfpb:ucxqefrada3h" ]; # Webshare $server = [ "METHOD" => "CUSTOM", "SERVER" = "p.webshare.io:80", "AUTH" => "user-rotate:pass" ]; # APIFY valid syntax example $server = [ "METHOD" => "CUSTOM", "SERVER" = "http://proxy.apify.com:8000", "AUTH" => "auto:pasword" ]; # IPVANISH valid syntax example $server = [ "METHOD" => "CUSTOM", "SERVER" => "akl-c12.ipvanish.com:1080", "AUTH" => "my_zone_customer_id:my_zone_customer_password" ];
Get sintax
$headers = ['Origin: https://google.com/', 'MSG: testing']; $server = ["METHOD" => "TUNNEL", "SERVER" => "ip:port"]; $req = new Req(); $promise = array(); $promise[] = $req::Get('https://httpbin.org/get'); $promise[] = $req::Get('https://httpbin.org/get', $headers); // Using headers $promise[] = $req::Get('https://httpbin.org/cookies/set?name=John&age=25', $headers, null, 'file_example_cookie_file'); // Using headers and cookies $promise[] = $req::Get('https://httpbin.org/get', null, $server); // Using only proxy $response = Run::Async($promise); // Run all resquests
Post sintax
$headers = ['Origin: https://google.com/', 'MSG: testing']; $server = ["METHOD" => "TUNNEL", "SERVER" => "ip:port"]; $post = ['name' => 'Jhon', 'age' => 25]; $req = new Req(); $promise = array(); $promise[] = $req::Post('https://httpbin.org/post'); // Simple resquest $promise[] = $req::Post('https://httpbin.org/post', http_build_query($post)); // Post data $promise[] = $req::Post('https://httpbin.org/post', $post); // Post (in json) $promise[] = $req::Post('https://httpbin.org/post', $post, $headers); // Post (in json) and headers $promise[] = $req::Post('https://httpbin.org/cookies/set?name=John&age=25', null, $headers, null, 'cookie_example'); // Using headers and cookies
Custom methods
$req = new Req(); $promise = array(); /** * Format: * $promise[] = $req::MethodName('url', $post_data, $headers, $server, $cookie_name); * $response = Run::Async($promise); */ $promise[] = $req::Put('https://httpbin.org/put'); $promise[] = $req::Patch('https://httpbin.org/patch'); $promise[] = $req::Delete('https://httpbin.org/delete');
Run requests
$req = new Req(); $promise = array(); for ($i=0; $i < 10; $i++) { $promise[] = $req::Get('https://httpbin.org/get'); } $response = Run::Async($promise); // Run all resquests $response = Run::Async([$promise[0], $promise[1]]); // Run someone resquests $response = Run::Async($promise, 100); // Modified ms
Installation
Install source from GitHub
To install the source code:
$ git clone https://github.com/Mateodioev/req-async.git
Install from Composer
$ composer require mateodioev/async-curl-requests:dev-master
And include it in your scripts:
require './vendor/autoload.php'; use Async\Req; use Async\Run;