[英]Request cUrl in Curl
我有這樣的動作
public function coordinatAction()
{
$curl = curl_init('https://maps.googleapis.com/maps/api/geocode/json?latlng=30.0000000000,40.0000000000');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $aParams);
//Sending request
$result = curl_exec($curl);
if (false === $result) {
$sResult = curl_error($curl);
};
curl_close($curl);
return $result;
}
並對此操作進行單元測試:
public function coordinatActionTest()
{
$curl = curl_init();
$params = [/** Some Params */]
curl_setopt($curl, CURLOPT_URL, 'http://mysite.local/coordinate'); //path to my action
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$this->assertEquals(200, $httpCode, "Wrong HTTP Response Code");
}
當我執行測試時,我收到請求“ curl in curl”(測試中的curl調用動作中的curl),但是第二次curl因5分鍾后超時而失敗。 如果我只稱一個動作為卷曲,則一切正常,但雙重卷曲會超時。 有誰能解釋為什么會這樣
首先,請確保可以使用瀏覽器訪問該網址。 http://mysite.local/coordinate
。 您也可以使用curl命令來驗證鏈接。 例如:
curl -XPOST YOUR_URL -d _YOUR_PARAMS
其次,可能發生的情況是,如果沒有正確的用戶代理字符串,您的服務器將不接受任何請求。 我建議您在卷曲測試中使用CURLOPT_USERAGENT
選項(對於任何瀏覽器,如Opera或Mozila)。
最后,檢查服務器的httpd.conf
文件,並查看傳入請求所必需的其他參數是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.