To stary temat, ale w moim ostatnim teście na jednym z moich API cURL jest szybszy i stabilniejszy. Czasami file_get_contents przy większym żądaniu potrzebuje ponad 5 sekund, gdy cURL potrzebuje tylko od 1,4 do 1,9 sekundy, co jest dwukrotnie szybsze.
Muszę dodać jedną notatkę na ten temat, że po prostu wysyłam GET i odbieram zawartość JSON. Jeśli poprawnie skonfigurujesz cURL, uzyskasz świetną odpowiedź. Po prostu „powiedz”, aby zakreślić, co chcesz wysłać, a co chcesz odebrać i to wszystko.
Na twoim przykładzie chciałbym zrobić taką konfigurację:
$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);
To żądanie zwróci dane w ciągu maksymalnie 0,01 sekundy
cURL
jest w stanie znacznie więcej niżfile_get_contents
. To powinno wystarczyć.