1
我正在尝试执行多个POST
REST调用。 捕获:同时进行多个POST调用。我完全知道,并已与图书馆guzzle
合作,但我没有想通过这样做正确。我可以异步执行GET
调用,但对POST
调用没有任何相同级别的调用。然后我碰到了pthreads
,我通读了文档,对于如何启动它还是有点困惑。我编译了php
和pthreads
扩展名。对同一API端点执行多个同时POST调用
有人可能会建议如何在同一时间执行多个POST
调用,并能够收集响应以供日后操作?
以下是循环和等待的基本实现。整体非常缓慢。
$postDatas = [
['field' => 'test'],
['field' => 'test1'],
['field' => 'test2'],
];
foreach ($postDatas as $postData) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.apisite.com",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($postData),
CURLOPT_HTTPHEADER => [
"cache-control: no-cache",
"connection: keep-alive",
"content-type: application/json",
"host: some.apisite.com",
],
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
}
哪里是'$这个 - > urlStack'宣布?必须有一些代码丢失。 – MaryCoding
是的,在这种情况下,它是通向文档存储的路径,它可以是基础或其他存储。 – Redr01d