cURL Timeout, können Sie elegant damit umgehen?

8

cURL lässt PHP einen Fatal Error auslösen, wenn es mehr als 30 Sekunden dauert, um eine Antwort vom Server zu erhalten. Dies scheint in meiner Web-App viel zu passieren, besonders wenn der andere Server beschäftigt ist. Es ist wirklich nicht schön für den Benutzer, das zu sehen.

Ich möchte entweder die Zeitüberschreitung abfangen und selbst eine nette Meldung anzeigen, oder alternativ fragte ich mich, ob es eine Möglichkeit gäbe, mit dem Rest des PHP-Skripts fortzufahren, wie der Rest dieses Skripts auch ausführen kann Es gibt keine Antwort vom Server (mit Standardwerten).

Ich sehe nicht wirklich, warum cURL einen fatalen Fehler anstelle einer Warnung für die Zeitüberschreitung werfen würde, um ehrlich zu sein. Es ist ein echter Schmerz.

    
Juicy 09.10.2013, 17:57
quelle

2 Antworten

5

Erhöhen Sie den cURL-Timeout mit diesen Parametern

%Vor%

Da Sie 30 Sekunden erwähnt haben, vermute ich, dass Ihr PHP Script Timeout abläuft. Fügen Sie das Ihrem PHP-Code hinzu.

%Vor%     
Shankar Damodaran 09.10.2013, 18:00
quelle
4

Dies ist eine etwas wörtlichere Antwort auf die Frage. Das bedeutet, dass die Drehung nach 30 Sekunden immer noch anhält, aber Sie können den Fehler erkennen und weitermachen, wenn Sie möchten.

%Vor%

Wenn Sie keine Kontrolle über die max_execution_time haben, können Sie das curl timeout leicht verringern.

    
cesoid 14.01.2016 21:37
quelle

Tags und Links