1. 程式人生 > >網絡通信第一課 C++封裝HTTP請求報文說明

網絡通信第一課 C++封裝HTTP請求報文說明

c++ http post

一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成


使用C++組裝上述報文

boost::asio::streambuf request;

std::ostream request_stream(&request);

request_stream << "POST /cs/restfull/operationRestfullApi/excuteSqlByCode HTTP/1.1\r\n";

request_stream << "Host: 192.168.0.88:8080\r\n";

//request_stream << "Connection: keep-alive\r\n";

request_stream << "Content-Length: " << strEncodeBuffer.size() << "\r\n";

request_stream << "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n";

//request_stream << "User-Agent: Mozilla/4.0\r\n";

//request_stream << "Accept-Language: zh-CN\r\n";

request_stream << "\r\n";

request_stream << strEncodeBuffer;


請求行

request_stream << "POST /cs/restfull/operationRestfullApi/excuteSqlByCode HTTP/1.1\r\n";



請求頭部

request_stream << "Host: 192.168.0.88:8080\r\n";

request_stream << "Connection: keep-alive\r\n";

request_stream << "Content-Length: " << strEncodeBuffer.size() << "\r\n";

request_stream << "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n";

//request_stream << "User-Agent: Mozilla/4.0\r\n";

//request_stream << "Accept-Language: zh-CN\r\n";

空行

request_stream << "\r\n";

說明:最後一個請求頭之後是一個空行,發送回車符和換行符,通知服務器以下不再有請求頭


請求數據

request_stream << strEncodeBuffer;

說明:請求數據不在GET方法中使用,而是在POST方法中使用。

POST方法適用於需要客戶填寫表單的場合。與請求數據相關的最常使用的請求頭是Content-Type和Content-Length。


參考

http://blog.csdn.net/zhangliang_571/article/details/23508953


網絡通信第一課 C++封裝HTTP請求報文說明