2009-09-30 12 views
13

HTTPS सर्वर पर POST सही तरीके से कैसे करें और लॉगिन डेटा को सही तरीके से एम्बेड करें। कोड के नीचे कोई भी कुकी नहीं लौटाता है (Wininet में यह करता है)। मुझे आश्चर्य है कि कैसे POCO HTTP लाइब्रेरी HTTP पुनर्निर्देशन को संभालती है? जो होना चाहिएपीओसीओ सी ++ - नेट एसएसएल - एचटीटीपीएस अनुरोध कैसे पोस्ट करें

req.setContentType("Content-Type: application/x-www-form-urlencoded\r\n"); 

: इस तरह

MyApp() 
{ 
    try 
    { 
     const Poco::URI uri("https://localhost.com"); 
     const Poco::Net::Context::Ptr context(new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "rootcert.pem")); 
     Poco::Net::HTTPSClientSession session(uri.getHost(), uri.getPort(), context); 
     Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_POST, "/login.php"); 
     req.setContentType("Content-Type: application/x-www-form-urlencoded\r\n"); 
     req.setKeepAlive(true); 

     std::string reqBody("username=???&password=???&action_login=Log+In\r\n\r\n"); 
     req.setContentLength(reqBody.length()); 

     //Poco::Net::HTTPBasicCredentials cred("???", "???"); 
     //cred.authenticate(req); 
     session.sendRequest(req) << reqBody; 
     Poco::Net::HTTPResponse res; 
     std::istream& rs = session.receiveResponse(res); 
     std::string resp; 

     std::vector<Poco::Net::HTTPCookie> cookies; 
     res.getCookies(cookies); 
    } 
    catch(const Poco::Net::SSLException& e) 
    { 
     std::cerr << e.what() << ": " << e.message() << std::endl; 
    } 
    catch(const std::exception& e) 
    { 
     std::cerr << e.what() << std::endl;; 
    } 

}; 

उत्तर

10

आप सेट कर रहे हैं सामग्री प्रकार

req.setContentType("application/x-www-form-urlencoded\r\n"); 
संबंधित मुद्दे