[英]php send curl request and wait for the response
我正在向服務器發送一個curl請求,該服務器需要幾秒鍾來處理請求並吐出響應。 我相信我的php腳本正在繼續而不是等待,因此基於響應的foreach循環吐出0結果。 在繼續處理數據之前,我如何等待curl事務完成?
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "admin:password");
curl_setopt($curl, CURLOPT_URL, "http://server/r/?dst_user__substr='user'");
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($curl);
$result = json_decode($ret,true);
<<<<I need to wait until transaction is complete here>>>>
foreach ($result['data'] as $key => $value)
{
//process data from $result
}
curl是阻塞的,這意味着:
$result = json_decode($ret,true);
foreach ($result['data'] as $key => $value)
{
//process data from $result
}
將在以下情況下執行:
$ret = curl_exec($curl);
完成了。 您可以使用curl_error()檢查錯誤和其他問題,並使用curl_getinfo()檢查HTTP響應代碼。
這真是太奇怪了! ,它不應該像你得到的那樣發生。 但無論如何嘗試這樣..
獲取httpresponse代碼,然后檢查...
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "admin:password");
curl_setopt($curl, CURLOPT_URL, "http://server/r/?dst_user__substr='user'");
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($curl);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode==200)
{
$result = json_decode($ret,true);
foreach ($result['data'] as $key => $value)
{
//process data from $result
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.