Vor etwas mehr als einem Jahr hatte ich bereits das gleiche Problem gemeldet: HTTPRequest - Timeout funktioniert nicht - Erledigt - WoltLab®
Der Fehler wurde zwar gelöst, allerdings scheint es noch ein anderes Symptom dieser Art zu geben:
<?php
require __DIR__ . '/global.php';
$start = microtime(true);
try {
$request = new \wcf\util\HTTPRequest( 'https://www.cyberport.de/pc-und-zubehoer/netzwerk/router/asus/pdp/5615-047/asus-rt-ac88u-dualband-wireless-ac3100-gigabit-ac-router-90ig01z0-bm3000.html', ['timeout' => 2]);
$request->execute();
$reply = $request->getReply();
} catch (\Exception $e) {
wcfdebug(microtime(true) - $start, $e->getMessage());
}
wcfdebug(microtime(true) - $start, $reply['headers']);
Display More
Das Problem ist schon seit Jahren durch eine unserer Erweiterungen bekannt, ließ sich bisher aber nie zuverlässig reproduzieren, bis zur heutigen Meldung von PoooMukkel und Cyperghost.
Nachtrag: Das Problem ist RequestOptions::TIMEOUT => 0, in HTTPRequest:193. Setze ich $this->options['timeout'] statt der 0, funktioniert es wie erwartet.
Nachtrag #2: Mir ist natürlich bewusst, dass HTTPRequest veraltet ist, allerdings ist das Plugin seit je her mit WSC 3.0+ kompatibel und bisher noch nicht exklusiv für 5.2+ erschienen.