一个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

本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1956054,如需转载请自行联系原作者

网络通信第一课 C++封装HTTP请求报文说明相关推荐

  1. web网络和http协议(了解域名和网页,制作第一个网页,了解http协议,流程和请求报文格式)

    文章目录 web网络和http协议 了解域名 早期使用HOST文件解析域名 现在DNS(Domain Name system 域名系统) 域名的概述 域名空间结构 域名介绍 域名注册 域名注册步骤 网 ...

  2. Python接口自动化实战 ( 第一阶段) - 封装接口请求类和异常处理

    1.封装http接口请求 已经实现了一个简单的接口请求,接下来就要考虑封装这个请求,在后面的用例中,只需要传递参数(URL ,Params,cookie,heade,method 等)每次去调用这个请 ...

  3. HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文

    文章目录 HTTP 介绍 请求数据包/请求消息/请求报文 请求数据包解析 响应数据包/响应消息/响应报文 HTTP 介绍 概念:Hyper Text Transfer Protocol 超文本传输协议 ...

  4. http详解 请求报文格式和响应报文格式

    题外话: <Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元>相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 HTTP 工作原理 超文本传 ...

  5. HTTP的请求报文与响应报文

    报文: 简单来说,报文就是也就是HTTP报文,作用是在各个系统之间进行和响应时用来交换与传输的数据单元,即站点一次性要发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义 ...

  6. HTTP代理实现请求报文的拦截与篡改2--功能介绍+源码下载

    返回目录 思路有了,下面就是来实现它了,在这里,我们采用我们熟悉的C#来实现,C#下有一个完整的WEB DEBUGGER(含代理服务器方式实现的HTTP请求拦截与篡改功能)的实现--Fiddler,F ...

  7. 【梅哥的Ring0湿润插入教程】第一课Windows内核/驱动编程概述及应用、商业驱动保护软件原理分析...

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 第一课Windows内核/驱动编程概述及应用. 商业驱动保护软 ...

  8. 瑟瑟发抖,小白的python第一课——网络爬虫

    作为python小白,总是在网络上看到关于python爬取各种数据的新闻,于是决定尝试之! 一:首先是python的安装,下载地址: https://www.python.org/downloads/ ...

  9. HTTP协议浅析(中):请求报文和响应报文

    1. 请求报文格式 1.1 服务器测试代码 服务器测试代码: #include <stdio.h> #include <stdlib.h> #include <strin ...

最新文章

  1. Keepalived实现LVS的高可用全解析
  2. Android 带有字数统计的 TextInputLayout
  3. python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记
  4. popwindow 焦点问题,物理返回键截获,软键盘监听问题
  5. js json转xml(可自定义属性,区分大小写)
  6. mysql 读写分离
  7. JVM 学习四:类加载之双亲委派机制与沙箱安全机制
  8. 有用的 Google Analytics Chrome 插件推荐
  9. awk之printf及相关参数详解
  10. android 程序 共享文件,026 Android多进程-文件共享
  11. 大数据对企业竞争的作用
  12. C++:单例模式——线程安全模式、饥汉模式、懒汉模式
  13. java.lang.IllegalArgumentException: Can not set xx field xx to jav问题解决
  14. SAP 报表设计器相关TCODE
  15. Python爬虫爬取豆瓣TOP250
  16. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法
  17. [转]一个计算机高手的成长
  18. Swift - 描边文字效果
  19. css html模板下载插件
  20. jstree获得节点的值

热门文章

  1. Kibana图形、报表分析
  2. 使用脚本快速查看Linux系统信息
  3. 物理知识(量子物理)
  4. 自己的mySql用户
  5. 双层感知机解决异或问题
  6. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
  7. 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题
  8. 解决vue2.0路由 TypeError: Cannot read property ‘matched‘ of undefined 的错误问题
  9. Android 自定义拍照,解决图片旋转,拍照参数设置兼容问题
  10. ORA-01078和LRM-00109问题导致ORACLE启动失败解决方法