Ограничить данные ответов libcurl - PullRequest
0 голосов
/ 11 сентября 2010

Я пытаюсь получить некоторое количество байтов из источника, используя libcurl, установив:

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

Но я получаю разные размеры данных каждый раз, даже не закрываю иногда только 22 байта.это работает?

1 Ответ

1 голос
/ 30 сентября 2010

Из документации:

Проходите долго с указанием предпочитаемого вами размер (в байтах) для буфера приема в libcurl. Суть этого было бы, что обратный вызов записи получает вызывается чаще и с меньшими ломти. Это просто рассматривается как запрос, а не заказ. Вы не можете быть гарантированно на самом деле получить данный размер. (Добавлено в 7.10)

Этот размер по умолчанию установлен как большой возможно (CURL_MAX_WRITE_SIZE), поэтому имеет смысл использовать эту опцию, только если Вы хотите, чтобы он был меньше. Вы хотите, чтобы он был меньше.

Так что на самом деле нет простого способа получить 100 байтов сразу. Вам нужно будет отследить, сколько байтов вы получили, и просто прекратить чтение, когда получите 100.

...