¿Es esta la mejor manera de realizar una solicitud de API utilizando PHP CURL?
-
05-07-2019 - |
Pregunta
Tengo un sitio que tiene una API simple que se puede usar a través de http. Deseo hacer uso de la API y enviar datos entre 1000 y 1500 veces a la vez. Aquí está su API: http://api.jum.name/
He construido la URL para hacer un envío, pero ahora me pregunto cuál es la mejor manera de realizar estas solicitudes 1000-1500 de API GET. Aquí está la implementación de PHP CURL que estaba pensando:
$add = 'http://www.mysite.com/3rdparty/API/api.php?fn=post&username=test&password=tester&url=http://google.com&category=21&title=story a&content=content text&tags=Season,news';
curl_setopt ($ch, CURLOPT_URL, "$add");
curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'files/cookie.txt');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$postdata = curl_exec ($ch);
¿Debo cerrar la conexión CURL cada vez que hago un envío? ¿Puedo volver a escribir lo anterior de una manera mejor que haga que estas entre 1000 y 1500 presentaciones sean más rápidas?
Gracias a todos
Solución
El bucle de PHP, de forma predeterminada, reutiliza una conexión para múltiples llamadas a curl_exec ().
Entonces, en este caso, simplemente usas el control de enrollamiento, obtuviste curl_init y si la URL coincide entre las llamadas a curl_exec (), enviará una "Conexión: keep-alive " Encabezado y reutilizar la conexión.
No cierre la conexión y no configure CURLOPT_FORBID_REUSE
también vea aquí:
Otros consejos
Si tienes acceso a php 5.2+, te recomiendo altamente el curl_multi de php.
Esto le permite procesar varias solicitudes de curvatura en paralelo, lo que en este caso definitivamente sería útil.
Documentación relacionada: http://us3.php.net/manual/ es / ref.curl.php
Un ejemplo de uso: http://www.somacon.com/p537.php