CURL îmi returnează un json incomplet

curl

#1

Salutare,

M-am tot uitat pe net, dar nu găsesc nimic care să mă lămurească.

Extrag date cu ajutorul curl printr-un API și primesc uneori (deci uneori, nu mereu) un json incomplet. Când primesc acest json incomplet, nimic nu-mi spune de ce se se întâmplă asta. Curl nu-mi returnează nicio eroare.

Am atașat ce-mi returnează curl_getinfo() după fiecare răspuns.

Dacă vreți să-mi spuneți că o altă setare din PHP, de care poate fi dependentă curl, ar putea fi problema, atunci, din cunoștințele mele, oricare ar fi setarea, aș fi observat. Și oricum cer aceleași date. Prima dată primesc un json incomplet, iar la a doua cerere sau a treia (cerând aceleași date) primesc un json complet.

Sigur că verific acel json. NU asta e problema mea. Nu caut o soluție la problemă, cât caut să înțeleg de ce se întâmplă asta și cine e de vină.

Un răspuns e bine venit.
Mulțumesc!

Raspunsuri.zip (2.0 KB)


(Catalin Ionut Titov) #2

Din ce vad raspunsul incomplet a durat aproape dublu ca timp.
Daca url este local poate verifici sa nu dea vreo exceptie. Daca nu atunci poti sa incerci sa folosesti CURLOPT_VERBOSE ca sa vezi tot ce face curl cand face call-ul si poate asa iti dai seama.

$fp = fopen('./curl.log');
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
curl_setopt($curl, CURLOPT_STDERR, $fp);

#3

N-am știut că există o detaliere mai clară în ce face curl.

Când primesc un json incomplet, am în plus:

* transfer closed with outstanding read data remaining
* stopped the pause stream!
* Closing connection 0

Încerc mai departe să înțeleg de ce se întâmplă asta.

Mulțumesc pentru răspuns!


(eduard) #4

Pornind de la acest mesaj, majoritatea situatiilor descrise pe stackoverflow sunt cauzate de configurari incorecte server-side.

Cu ocazia asta am mai invatat despre o posibila sursa de par alb, multumesc :smiley: