Показать сообщение отдельно

C++ и cURL как распокавать ответ пожатый deflate ?
  #1  
Старый 06.01.2010, 01:25
Akum
Познающий
Регистрация: 05.01.2010
Сообщений: 32
С нами: 8604162

Репутация: 5
По умолчанию C++ и cURL как распокавать ответ пожатый deflate ?

Здраствуйте!
Отправляю GET запрос на сервер так:

Код:
#include <iostream>
#include <string.h>
#include <curl/curl.h>

using namespace std;

static int writer(char *data, size_t size, size_t nmemb,std::string *buffer)
{
    int result = 0;
    if (buffer != NULL)
    {
        buffer->append(data, size * nmemb);
        result = size * nmemb;
    }
    return result;
}

int main(int argc, char* argv[])
{
    //  cout<<(*argv)<<endl;
    string patch_to_programm = *argv;
    patch_to_programm = patch_to_programm + "/";

    string urls = "http://depositfiles.com/files/dq94choda";
    string uagent = "User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5";
    string reffer ="Referer: http://vkontakte.ru/away.php?to=http%3A%2F%2Fdepositfiles.com%2Ffiles%2Fdq94choda";

    CURL *curl1;
    CURLcode result;

    string buffer;

    curl_global_init(CURL_GLOBAL_ALL);

    cout << "Заход на сайт... " << urls << endl;

    curl_slist *slist1=NULL;

    slist1 = curl_slist_append(slist1, uagent.c_str());
    slist1 = curl_slist_append(slist1, reffer.c_str());
    slist1 = curl_slist_append(slist1, "Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
    slist1 = curl_slist_append(slist1, "Accept-Encoding: gzip,deflate");
    slist1 = curl_slist_append(slist1, "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
    slist1 = curl_slist_append(slist1, "Accept-Charset: UTF-8,*;q=0.5");

    curl1 = curl_easy_init();
    curl_easy_setopt(curl1, CURLOPT_URL, urls.c_str());
    curl_easy_setopt(curl1, CURLOPT_HEADER, 0);
    curl_easy_setopt(curl1, CURLOPT_FOLLOWLOCATION, 1);
    curl_easy_setopt(curl1, CURLOPT_COOKIEJAR, (patch_to_programm +"cookiefile.1").c_str());
    curl_easy_setopt(curl1, CURLOPT_COOKIEFILE,(patch_to_programm +"cookiefile.1").c_str());
    curl_easy_setopt(curl1, CURLOPT_HTTPHEADER, slist1);
    curl_easy_setopt(curl1, CURLOPT_WRITEFUNCTION, writer);
    curl_easy_setopt(curl1, CURLOPT_WRITEDATA, &buffer);

    result = curl_easy_perform(curl1);

    cout<<buffer<<endl;

    return 0;
}
Возникает 2 вопроса:
1)Как перевести ответ в читабельные вид (в норм кодировку)?
2)И почему не создается файл с кукисами в папке с программой?
Заранее огромное спасибо!

OS ubuntu 9.10 x64 codebloks
 
Ответить с цитированием