になったこんにちは私はcurl
PHP POSTリクエスト(クロスドメインの由来のため)しており、問題に直面しています。投稿要求は、私が制御できないカスタムWebサーバーをホストするマシンに送信されます。最初のリクエスト(15-20のように)はOKですが、この数のリクエストのあとで、エラーメッセージcurl php post - サービスが利用できない - アクティブなクライアントの最大数が
のサービスを利用できません。サービス使用不可 - アクティブなクライアントの最大数に達しました。
私は、リクエストを送信するたびにカールが新しい接続を作成しているとします。私はまた、マシンサーバがいくつかの接続を開くことができると仮定します。ここで
は私のPHPコードです:
$data = array("getTags" => array("Start_dav","CutON"), "includeTagMetadata" => false);
$data_string = json_encode($data);
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,"http://domainipaddres/");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, "SID=8c81775da6");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($ch, CURLOPT_FORBID_REUSE, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string),
'Connection: Keep-alive',
'Keep-alive: 300'
)
);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
私は実際にそれを把握する必要がありますが、さまざまなオプションとヘッダ件のデータを試みるの2日後、私はそれが動作します傾けます。カールに強制的に1つの接続だけを使用する方法
はEDITありがとうございました。私は今日の問題を発見しました。サーバーにはアクティブなクライアントが3つしかありません。私は、サーバーからの最初の応答ヘッダーがSET Cookieであり、別の要求でそのCookieを使用する必要があることがわかりました。私は手動でそれを設定し、それは動作します。これを自動的に行う方法はありますか?
とにかくありがとうね。言い換えれば、それは問題ではなく、最後に処理能力がないことです。 –
私は503応答を得た後、次の要求はcca 10分待った後に動作します。しかし、最初に列に送られていない20の要求は大丈夫です。それは奇妙なことです。私は、接続がすぐに要求後に閉じられる場合、それは大丈夫だと思う。または、curlがリクエストのために同じ接続を使用していて、それがまだ生存している場合です。それは問題を起こすべきではありません –
私はカールオプションCURLOPT_COOKIE、CURLOPT_SSL_VERIFYPEER、CURLOPT_FORBID_REUSEなしで試してみたいと思います。それなしで何が起こるかを見てください... – Werner