一.什么是Basic认证?
这里不做细说,网上很多资料。
二.Qt HTTP请求使用Basic认证
大致操作流程:
http请求的header中增加内容:
Authorization: Basic credentials
credentials: 将“用户名:密码”进行Base64编码
例如:Authorization: Basic MTIzOjEyMw==
(其中 MTIzOjEyMw== 为将“用户名:密码”经过Base64编码的内容)
代码示例:
……
QNetworkAccessManager *m_netMgr = new QNetworkAccessManager();
QNetworkRequest req(fullurl);
req.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("application/json;charset=utf-8"));
//添加 Basic认证 内容
req.setRawHeader("Authorization", getAuthorizationInfo().toUtf8());//Authorization身份
QNetworkReply* reply = m_netMgr->get(req);
……
getAuthorizationInfo()函数实现
//获取授权信息
QString EmqxHttpApiHelper::getAuthorizationInfo()
{
//m_user是用户名 m_pwd是密码
QString userPwd = QString("%1:%2").arg(m_user).arg(m_pwd);
QString userPwdBase64 = userPwd.toUtf8().toBase64();
QString rtn = QString("Basic %1").arg(userPwdBase64);
return rtn;
}