2012-04-09 15 views
7

मैं HTTP PUT अनुरोध का उपयोग कर किसी सर्वर पर C++ एप्लिकेशन से कुछ डेटा भेजना चाहता हूं। मैं अपने आवेदन में नेटवर्किंग के लिए poco लाइब्रेरी का उपयोग कर रहा हूं।Poco लाइब्रेरी में HttpRequest PUT सामग्री

HTTPClientSession session(_uri.getHost(), _uri.getPort()); 
HTTPRequest req(HTTPRequest::HTTP_PUT, path, HTTPMessage::HTTP_1_1); 

मैं सामग्री (फाइल) धारा कहाँ स्थापित कर सकता है जब मैं अनुरोध भेजने:

मैं इस कोड स्निपेट का उपयोग कर रहा हूँ? क्या कोई मुझे इस पुस्तकालय का उपयोग करके एक उदाहरण दिखा सकता है?

उत्तर

9

online documentationHTTPClientSession के लिए हवाला देते हुए:

sendRequest() एक निर्गम धारा है कि अनुरोध शरीर भेजने के लिए इस्तेमाल किया जा सकता वापस आ जाएगी। अनुरोध निकाय भेजने के बाद, HTTPResponse ऑब्जेक्ट बनाएं और इसे प्राप्त करने के लिए पास करें()।

try { 
    Poco::Net::HTTPClientSession session("www.example.com"); 
    Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_PUT, "/foo"); 

    std::ostream& os = session.sendRequest(request); 

    std::ifstream ifs("thefile.txt"); // missing: error handling 
    Poco::StreamCopier::copyStream(ifs, os); // that's it :-) 

    Poco::Net::HTTPResponse response; 
    std::istream& rs = session.receiveResponse(response); 
    // Do something with rs... 

} catch (Poco::Exception& e) { 
    std::cout << e.displayText() << std::endl; 
} 

इसके अलावा, slides for POCO Network programming पर एक नजर है:

निम्नलिखित टुकड़ा एक तरह से उत्पादन धारा का उपयोग करने के लिए एक फ़ाइल में पढ़ने के लिए पता चलता है। वे अन्य चीजों के साथ, HTTPClientSession का उपयोग कैसे करते हैं, दिखाते हैं।

पीओसीओ दस्तावेज terse और बिंदु पर है; इसे पढ़ने के लिए उपयुक्त है।

+0

मुझे एक पोस्ट अनुरोध के साथ एक ही समस्या है। मेरे सर्वर को अनुरोध का शरीर नहीं मिलता है, जब मैं इसे आपके जैसा वर्णित करने की कोशिश करता हूं। –