C'est un vieux sujet mais lors de mon dernier test sur une de mes API, cURL est plus rapide et plus stable. Parfois, file_get_contents sur une demande plus importante a besoin de plus de 5 secondes alors que cURL n'a besoin que de 1,4 à 1,9 secondes, ce qui est le double plus rapide.
Je dois ajouter une note à ce sujet que je viens d'envoyer GET et de recevoir du contenu JSON. Si vous configurez correctement cURL, vous aurez une excellente réponse. Il suffit de "dire" à cURL ce que vous devez envoyer et ce que vous devez recevoir et c'est tout.
Sur votre exemple, je voudrais faire cette configuration:
$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);
Cette demande renverra les données en 0,01 seconde maximum
cURL
est capable de bien plus quefile_get_contents
. Cela devrait suffire.