Это невозможно, если у вас нет контроля над API
Если у вас есть контроль над API, вы можете позволить ему принимать дополнительные параметры, которые оцениваются веб-службой и должны быть добавлены в ваш HTTP-запрос. Таким образом, параметр & details = apple может быть оценен в бэкэнде следующим образом
details = extractFromRequestParams("details");
if (details==="apple") {
printOutDetailsForApple();
} else {
printOutEverything();
}
Если у вас нет контроля над API, ваш запрос cURL всегда будет выполнять весь запрос, извлекать все из ответа, и только после этого вы получите доступ к этому ответу.
Когда вы говорите о довольно больших ответах, возможно, стоит заменить библиотеку cURL на более низкий уровень, который даст вам больше контроля над чтением из HTTP-запроса. Тогда вы будете обрабатывать части ответа, когда они уже поступят, и сможете перестать читать, когда получите от ответа все, что вам нужно. И, вероятно, сохранить несколько байтов от передачи. Конечно, вы не можете пропустить части в начале, поэтому полезность этого подхода зависит от положения данных, которые важны для вас во всем ответе. И это требует постоянного сброса на стороне сервера, который вы не можете контролировать.