網絡通信第一課 C++封裝HTTP請求報文說明
一個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請求報文說明