2017-02-22 8 views
0

У меня есть действие что-то вроде этогоЗапрос Curl в 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"); 
} 

Когда я выполнить тест, я получаю запрос «завиток в завиток» (свернуться в тест кривого вызова в действии), но второй скручивание проваливается тайм-аутом через 5 минут. Если я назову только один завиток в действии, все будет нормально, но время ожидания зависает. Не могли бы объяснить, почему это происходит?

+0

Mabye это не связано, но я вижу две вещи. В вашей функции CoordinatAction, aParams никогда не определяется и функция CoordinatActionTest отсутствует curl_setopt ($ curl, CURLOPT_POST, 1); – Camille

ответ

0

Сначала убедитесь, что URL доступен с помощью браузера. http://mysite.local/coordinate. Вы можете сделать это, используя команду curl, чтобы проверить ссылку. Например:

curl -XPOST YOUR_URL -d _YOUR_PARAMS 

Во-вторых, может случиться так, что ваш сервер не принимает запрос без правильной строки пользовательского агента. Я рекомендую вам использовать опцию CURLOPT_USERAGENT с вашим curl-тестом (с любым браузером, например Opera или Mozila).

Наконец, проверьте файл httpd.conf вашего сервера и посмотрите, какие другие параметры обязательны для входящего запроса.