2012-04-09 26 views
7

Tôi muốn gửi một số dữ liệu từ ứng dụng C++ tới máy chủ bằng cách sử dụng yêu cầu HTTP PUT. Tôi đang sử dụng thư viện poco để kết nối mạng trong ứng dụng của mình.HttpRequest PUT nội dung trong thư viện poco

Tôi đang sử dụng đoạn mã này:

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

Nơi nào tôi đặt nội dung (file) dòng khi tôi gửi yêu cầu? Bất cứ ai có thể cho tôi một ví dụ bằng cách sử dụng thư viện này?

Trả lời

9

Trích dẫn các online documentation cho HTTPClientSession:

sendRequest() sẽ trả về một dòng đầu ra có thể được sử dụng để gửi các cơ quan theo yêu cầu. Sau khi bạn thực hiện xong việc gửi phần thân yêu cầu, hãy tạo một đối tượng HTTPResponse và chuyển nó tới receiveResponse().

Đoạn sau đây cho thấy một cách để sử dụng các dòng đầu ra để đọc trong một tập tin:

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; 
} 

Ngoài ra, có một cái nhìn tại slides for POCO Network programming. Họ cho thấy, trong số những thứ khác, làm thế nào để sử dụng HTTPClientSession.

Tài liệu POCO là ngắn gọn và cho điểm; nó là đáng giá để đọc nó.

+0

Tôi có cùng sự cố với yêu cầu đăng bài. Máy chủ của tôi không nhận được yêu cầu, khi tôi cố gửi nó như bạn đã mô tả. –

Các vấn đề liên quan