HTTP
基本内容:
主要类:
QNetworkAccessManager
QNetWorkRequest 用于请求
QNetworkReply 接受请求的响应
QNetworkRequest request(QUrl("https://...."));//网站请求
manager = new QNetworkAccessManager();
QNetworkReply* reply = manager->get(request);
connect(reply, &QNetworkReply::finished, [this, reply]() {
if (reply->error() == QNetworkReply::NoError) {
// 获取并打印 HTTP 状态码
int resCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
}
//200为正常就可以读取网页数据
if( reply->error() == QNetworkReply::NoError && resCode == 200){
QByteArray data = reply->readAll();
}
reply->deleteLater();
});
HTTP方法:
- GET:请求从服务器获取指定资源,不对数据进行更改。
- HEAD:与 GET 类似,但不获取资源的内容,只获取响应头信息。
- POST:向服务器发送数据以创建新资源。
- PUT:向服务器发送数据更新现有资源,资源不存在则新建。与POST区别为PUT是幂等的。
- **PATCH:**对资源进行修改。与PUT区别为,PATCH只更改部分数据而不是整个资源。
- DELETE:请求服务器删除指定的资源。
HTTP状态码:
- 1xx(信息性状态码):表示接收的请求正在处理。
- 2xx(成功状态码):表示请求正常处理完毕。
- 3xx(重定向状态码):需要后续操作才能完成这一请求。
- 4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
- 5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。
如200表示成功,404表示资源未找到。
HTTP/HTTPS默认端口:
HTTP 的 URL 是由 http:// 起始与默认使用端口 80 ,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口443。
JSON:
QJsonDocument:读取json数据;将json数据转化为字符串或字符数组
QJsonObject:表示JSON对象,键值对的集合
QJsonArray:表示JSON数组
QJsonValue:表示JSON值
值有 6 种基本数据类型:
- bool(QJsonValue::Bool)
- double(QJsonValue::Double)
- string(QJsonValue::String)
- array(QJsonValue::Array)
- object(QJsonValue::Object)
- null(QJsonValue::Null)
分[ ] ,{ }