Почему libcurl CURLOPT_ENCODING игнорирует значение gzip? - PullRequest
0 голосов
/ 21 февраля 2019
CURL* requestHandle = curl_easy_init();
curl_easy_setopt(requestHandle, CURLOPT_VERBOSE, 1L)
curl_easy_setopt(requestHandle, CURLOPT_NOSIGNAL, 1L) == CURLE_OK);
curl_easy_setopt(requestHandle, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(requestHandle, CURLOPT_POSTREDIR, CURL_REDIR_POST_301 | CURL_REDIR_POST_302);
curl_easy_setopt(requestHandle, CURLOPT_ENCODING, "gzip");
curl_easy_setopt(_requestHandler, CURLOPT_URL, m_request.m_uri.GetBuffer();
curl_easy_setopt(_requestHandler, CURLOPT_HTTPGET, 1L);
curl_easy_setopt(_requestHandler, CURLOPT_WRITEFUNCTION, WriteFunction);
curl_easy_setopt(_requestHandler, CURLOPT_WRITEDATA, m_response);

Возврат моего запроса по какой-то причине все еще закодирован как бред, несмотря на установку CURLOPT_ENCODING в «gzip».Он отображается незакодированным в подробном выводе, но вывод в моем m_response - нет.Если я указываю CURLOPT_ENCODING в "" (пустая строка), он правильно декодирует вывод для меня.В подробном выводе нет никакой разницы.

Согласно подробному выводу, мой исходящий запрос имеет Accept-Encoding: gzip

Входящий ответ имеет HTTP/1.1 200 OK\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: 362\r\nContent-Encoding: gzip\r\n

Почему "" работаета не "gzip" здесь как параметр?Я использую libcurl 7.54.1

...