2016-03-22 4 views
1

curl C++を使用してインターネットページをダウンロードしようとしています。 httpアナライザーを使用して、ヘッダーを確認してcURLで使用できます。スニッファが有効になっているときに、私は私の要求を実行した場合Curlはスニッファが有効な場合にのみ機能します - 暗号化された応答内容

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

がすべて正常に動作します。私はカールで私のGETリクエストを実行すると は、私はこのような暗号化された応答内容、何かを持っています。 理由を理解できません...ウェブサイトは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);  

、それが有効になっているときにスニファを変更することができますか? なぜ奇妙なレスポンスコンテンツが届くのですか?このラインでは

答えて

1

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

あなたはあなたがgzip, deflateを受け入れることを言っているので、サーバは、それが戻って圧縮送信しています。その行を削除してみてください。

+0

あなたはそうです!ありがとうございました。私がスニッファを有効にした理由を知っていますか? – Vincy6

+1

キャッシュやサーバートラッキングクライアントと関係します。あなたのスニッファはおそらく 'Accept-Encoding'ヘッダを送信しません。 –

関連する問題