Dies ist ein altes Thema, aber bei meinem letzten Test auf einer meiner APIs ist cURL schneller und stabiler. Manchmal benötigen file_get_contents bei größeren Anforderungen mehr als 5 Sekunden, wenn cURL nur 1,4 bis 1,9 Sekunden benötigt, was doppelt so schnell ist.
Ich muss einen Hinweis hinzufügen, dass ich nur GET sende und JSON-Inhalte empfange. Wenn Sie cURL richtig einrichten, erhalten Sie eine gute Antwort. Sagen Sie einfach, was Sie senden müssen und was Sie empfangen müssen, und das war's.
Auf Ihrer Exampe möchte ich dieses Setup machen:
$ch = curl_init('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$result = curl_exec($ch);
Diese Anfrage gibt Daten in max. 0,01 Sekunden zurück
cURL
ist zu viel mehr fähig alsfile_get_contents
. Das sollte genug sein.