cURL se niega a ignorar el caché

Estoy usando cURL en mi instancia de CakePHP 3.8 para obtener datos. Pero cURL siempre obtiene la versión más antigua (en caché?) De los datos.

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_FRESH_CONNECT, 1 );
curl_setopt( $ch, CURLOPT_FORBID_REUSE, 1 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookiefile); 
$url_content = curl_exec( $ch );
$url_info = curl_getinfo( $ch );
curl_close( $ch );

Estaba estableciendo un sello de fecha y hora

$url.'&t='.time();

pero todavía obtengo los datos en caché. También borré todos los cachés de Cake, pero esto no funcionó ... ¿alguien tiene una idea?

0
hm, entonces por favor solo dime, ¿por qué cURL devuelve datos diferentes en comparación con llamar a la url en el navegador directamente ...
agregado el autor user2641845, fuente
es un servicio que devuelve JSON. no hay JS, ni Cookies ... todos del mismo agente de usuario ...
agregado el autor user2641845, fuente
Curl no almacena en caché los contenidos, nunca
agregado el autor Daniel Stenberg, fuente
Puede haber muchas razones para eso, desde usuario-agente hasta cookies y javascript. Eso es lo que necesitas averiguar, supongo.
agregado el autor Daniel Stenberg, fuente

2 Respuestas

Supongo que el sitio está controlando la memoria caché. Por lo tanto, evite que el sitio le envíe datos almacenados en caché utilizando el encabezado HTTP con el curl.

$header = array("Cache-Control: no-cache");
// $header = array("Cache-Control: max-age=0");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
0
agregado

Hay algunos errores en las líneas CURLOPT_COOKIEFILE y CURLOPT_COOKIEJAR. Usaste $ curl en lugar de $ ch.

0
agregado
doh, solo un error de copiar y pegar ...
agregado el autor user2641845, fuente
PHP - Comunidad española
PHP - Comunidad española
6 de los participantes

En este grupo hablamos de PHP. Partner: es.switch-case.com