2016-03-22 10 views
1

Curl C++ kullanarak bir internet sayfası indirmeye çalışıyorum. http analyzer'ı kullanarak başlığı görebilir ve cURL'de kullanabilirim. algılayıcı etkin olduğunda benim isteği yürütmek durumundaCurl yalnızca sniffer etkinleştirildiğinde çalışır - şifreli yanıt içeriği

‹í=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 

tüm düzgün çalışır: Ben kıvrılma benim GET isteği yürütmek zaman böyle kriptolanmis tepki içeriği, bir şey var. Nedenini anlayamıyorum ... Web sitesi http ve https değil.

Bu benim kodudur: etkinleştirildiğinde

 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);  

Ne sniffer değiştirebilirim? Neden garip bir yanıt içeriği alıyorum? Bu hat sayesinde

cevap

1

:

chunk = curl_slist_append(chunk, "Accept-Encoding: gzip, deflate"); 

Sen gzip, deflate kabul söylüyorsun, bu nedenle sunucu geri sıkıştırılmış gönderiyor. Bu satırı kaldırmayı deneyin.

+0

Haklısınız! Teşekkür ederim. Dinleyiciyi neden işe alırsam, biliyor musun? – Vincy6

+1

Önbelleğe alma veya sunucu izleme istemcileri ile ilgili bir şey olacaktır. Kaybettiğiniz muhtemelen "Accept-Encoding" başlığını göndermiyor. –

İlgili konular