我有类似这样的行动
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" (在测试呼叫卷曲中卷曲),但是第二次卷曲在5分钟后超时失败。如果我只用一个卷曲来表示它一切正常,但是滚动的卷曲会超时。可以解释为什么会发生
答案 0 :(得分:0)
首先确保可以使用浏览器访问该网址。 http://mysite.local/coordinate
。您也可以使用curl命令来验证链接。例如:
curl -XPOST YOUR_URL -d _YOUR_PARAMS
其次,如果没有适当的用户代理字符串,您的服务器可能不会接受任何请求。我建议你在卷曲测试中使用CURLOPT_USERAGENT
选项(使用Opera或Mozila等浏览器)。
最后,检查服务器的httpd.conf
文件,看看传入请求的其他强制参数是什么。