找出 URL 响应以检查 Codeception 中损坏的 Url

Find out URL response to check broken Url's in Codeception

我使用 grabMultiple() 方法获取了多个 URL。 我想检查它的响应以检查它是否损坏(即 404)。

我可以在 Codeception 中使用 HTTP 响应吗?如果是,语法是什么?

使用seeResponseCodeIs方法。

$links = $I->grabMultiple('div.test-info a', 'href');
foreach ($links as $link) {
  $I->amOnPage($link);
  $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
}

这对我有用 -

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";
}

}