2010-12-05 4 views
3

Как я могу получить куки ответов от запроса curlpp?Как получить файлы ответов с помощью curlpp?

Я хочу сохранить сеанс PHP из HTTP-запроса GET. Это мой текущий код:

void Grooveshark::Connection::processPHPCookie() 
{ 
    std::ostringstream buffer; 

    gsDebug("Processing PHP cookie..."); 

    try { 
     request.setOpt<cURLpp::Options::Url>("http://listen.grooveshark.com"); 
     request.setOpt<cURLpp::Options::WriteStream>(&buffer); 
     request.perform(); 

     // Get the PHP Session cookie here.. 

    } catch (cURLpp::LogicError& exception) { 
     gsError(exception.what()); 
    } catch (cURLpp::RuntimeError& exception) { 
     gsError(exception.what()); 
    } 

    gsDebug("Processing complete..."); 
} 

request является cURLpp::Easy экземпляр. Если вам нужна дополнительная информация, вы можете найти мой исходный код here

Заранее спасибо.

ответ

0

https://bitbucket.org/moriarty/curlpp/src/ac658073c87a/examples/example07.cpp

Этот пример, кажется, что вы хотите. В частности, этот код:

std::cout << "\nCookies from cookie engine:" << std::endl; 
std::list<std::string> cookies; 
curlpp::infos::CookieList::get(exEasy, cookies); 
int i = 1; 
for (std::list<std::string>::const_iterator it = cookies.begin(); it != cookies.end(); ++it, i++) 
{ 
    std::cout << "[" << i << "]: " << MakeCookie(*it) << std::endl; 
} 

Заметим, что MakeCookie возвращает-структуру под названием MyCookie в примере, так что вам также понадобится:

struct MyCookie 
{ 
     std::string name; 
     std::string value; 
     std::string domain; 
     std::string path; 
     time_t expires; 
     bool tail; 
     bool secure; 
}; 

MyCookie 
MakeCookie(const std::string &str_cookie) 
{ 
     std::vector<std::string> vC = splitCookieStr(str_cookie); 
     MyCookie cook; 

     cook.domain = vC[0]; 
     cook.tail = vC[1] == "TRUE"; 
     cook.path = vC[2]; 
     cook.secure = vC[3] == "TRUE"; 
     cook.expires = StrToInt(vC[4]); 
     cook.name = vC[5]; 
     cook.value = vC[6]; 

     return cook; 
} 
Смежные вопросы