2016-08-05 1 views
-2

Я использовал метод URL-адресов, используя метод grabMultiple(). Я хочу проверить его ответ, чтобы проверить, не сломан ли он (i.e.404) или нет.Выясните URL-ответ, чтобы проверить поврежденный URL-адрес в Codeception

Могу ли я использовать HTTP-ответ в Codeception? Если да, то какой синтаксис?

+0

Вы получите меньше downvotes, если вы остановили мечения PHP. – Naktibalda

ответ

0

Это работает для меня -

function check_url($link){ 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $link); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_NOBODY, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); //follow up to 10 redirections - avoids loops 
$data = curl_exec($ch); 
curl_close($ch); 
preg_match_all("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches); 

$code = end($matches[1]); 

if($code==404) 
{ 
    echo "Bad url"; 
} 
else{ 
    echo "Good url"; 
} 

}

1

Использование seeResponseCodeIs способ.

$links = $I->grabMultiple('div.test-info a', 'href'); 
foreach ($links as $link) { 
    $I->amOnPage($link); 
    $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK); 
} 
Смежные вопросы