複数のPOST
REST 呼び出しを実行しようとしています。問題: 同時に複数の POST 呼び出しを行う。私は完全に認識しており、ライブラリを使用していますguzzle
が、これを適切に行う方法を考え出していません。呼び出しを非同期に実行できますGET
が、同じレベルのPOST
呼び出しはできません。それから私は遭遇pthreads
し、ドキュメントを読み、それを開始する方法について少し混乱しました. 拡張子を付けてコンパイルphp
しました。pthreads
誰か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;
}
}