之前没接触过http的东西,由于工作原因,需要调用阿里云提供的云端API服务,与通常的Http不同的是多出来一个签名认证的过程,阿里那边没有C和C++的例子,只能自己捣鼓了一段时间,使用Qt完成了这个功能,记录一下防止以后忘记。
1.Http原理
HTTP 消息结构
先来看一下 HTTP 的消息结构
先看客户端发送信息
GET /music/v1/search?keywords=%E6%B5%B7%E9%98%94%E5%A4%A9%E7%A9%BA HTTP/1.1\r\n
GET:请求方法
/music/v1/search?keywords=%E6%B5%B7%E9%98%94%E5%A4%A9%E7%A9%BA:URL中的PATH路径
Content-Type:客户端发送内容的格式
Accept:客户端希望接收的内容格式
HOST:域名
Date:日期
Content-MD5:body区非From数据的MD5值
X-Ca-Key:秘钥,相当于签名认证的用户名
X-Ca-Nonce:UUID值,是一个随机数
X-Ca-Signature:签名字符串通过加密算法得到的哈希值,与服务器端生成的哈希值进行比较
一般要处理的数据就这些,其他都能自动生成。重点是签名的过程,阿里官方文档链接