2010-09-11 5 views
0

je suis en train d'obtenir un certain nombre d'octets de source à l'aide libcurl en définissant:Limite libcurl données de réponse

curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, 100); //get 100 bytes from source 

Mais je reçois la taille des données différentes à chaque fois, même pas près parfois seulement 22 octets. Est-ce que ça marche?

Répondre

1

De la documentation:

Passez un entier à long précisant votre taille préférée (en octets) pour le tampon de réception dans libcurl. Le point principal de ce serait que le callback d'écriture obtient appelé plus souvent et avec de plus petits morceaux . Ceci est juste traité comme une demande , pas une commande. Vous ne pouvez pas être garanti pour obtenir réellement la taille donnée. (Ajouté à 7,10)

Cette taille est définie par défaut aussi grand que possible (CURL_MAX_WRITE_SIZE), il est logique d'utiliser cette option si vous voulez smaller.you voulez réduire.

Il n'y a donc pas vraiment de moyen facile d'obtenir 100 octets tout de suite. Vous devez garder une trace du nombre d'octets que vous avez reçus et arrêter de lire une fois que vous avez 100.