我正在尝试使用curl c ++下载网页。 使用http分析器我可以看到标题并在cURL中使用它。 当我通过curl执行我的GET请求时,我有一个加密的响应内容,如下所示:
‹í=ksÛ8’Ÿ“ªùíÞÊ©1%‘Ô3‰=å8NÆ»ñccMfo§æX IH(BÇmewÿÏÝ߸ûc×
ð%‰’(Kžä®&›ÐÝèn¼^~ûúê´ÿï×gdNÜã§/ñq©7:ªðP;ïWÈýÄõ‚£Ê8§Ïëõ»»»ÚYþ¨®÷z½ú=f¨`FFã§O_NXH‰=¦~À£Jµ.|†02öÙp÷†"}êÐë
R¢ðè„UFÌc>
…_!¶ðBæN ÷Ê$ÍZ‡œ^Ü`Ñ9x€åÞ(¬¸‹`ì–P?:Yu‡8t /]î}">s*A8sY0f,¬p6…ì!»ëvTâú@ª0C6™Öm1™ú,„_Ÿ0ÄÍh;–ÑèÒv‡1Çh9tØëtMÖ`FË6›5Àó½Þlµ›ÝN§Õ¨ s8=ªPW½
CîB'L¸WGZ\²?ק>÷BUŽÙ6;³aši9òã>JúÔ‡Ô³gq_ÿøkÄüY-y×ôšYKjj6M½g6Ú)í3æí«²»’º¶;F«?RI~Èâ‚:Íf·e˜’l¼8¬ã‡»¡ó%sÙ~A‰Ü¦øßàeuà´Å´¸‘F+ßÝ…æÉ {‰ž;—Z®qÏrøˆ‡Ô•©”©˜FӤ˻V«Û4öGMAãÌDFf’ˆô-&A‡ÆÐÛ9®{asêZˆ3Täò„t½G%$¤ƒs’d‹àé3•TüšØêšFÓ0¹ÂPØ L#ásºHâʯ ‰ºÙê5ÌîoH¢±žFc‘Η¥Ԙ¦&
A»¹Ç¾æ[SN=(Å÷ùpê(p¹Ãüú{ˆÈ·œëhàr»~
j³oýY®1GŸÆÎndŽd0îuÑùrD
#Ÿi [äu¿Âî¸çUСb$¾ª‚´AÀ _
e('Cá ‹{¶×dE¢9
¨Â¹¡…V‘؇|KFÇv»ÛíöZ_”kœÖz”DKKtB=MÙʼn:2ÛF¯Ñx³êY`&Fؾ–ÙyŒ¢†B
如果我在启用嗅探器时执行我的请求,则一切正常。 我无法理解为什么......网站是http,而不是https。
这是我的代码:
curl_easy_reset(curl);
/* Headers ed altri parametri validi per ogni cURL*/
struct curl_slist *chunk = NULL;
chunk = curl_slist_append(chunk, "Host: www.*****.it");
chunk = curl_slist_append(chunk, "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0");
chunk = curl_slist_append(chunk, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
chunk = curl_slist_append(chunk, "Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3");
chunk = curl_slist_append(chunk, "Accept-Encoding: gzip, deflate");
chunk = curl_slist_append(chunk, "Connection: Keep-Alive");
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 90);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 90);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_easy_setopt(curl,CURLOPT_FOLLOWLOCATION, true);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
curl_easy_setopt(curl, CURLOPT_URL, "http://www.******.it/");
res = curl_easy_perform(curl);
writeFile("a.html", readBuffer);
启用嗅探器后可以更改什么? 为什么我收到一个奇怪的回复内容?
答案 0 :(得分:1)
这一行:
chunk = curl_slist_append(chunk, "Accept-Encoding: gzip, deflate");
您说您接受gzip, deflate
,因此服务器会将其压缩回来。尝试删除该行。