1)QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data)
该函数用于发送 HTTP POST 请求,将数据作为请求体发送。
2)QNetworkReply *put(const QNetworkRequest &request, const QByteArray &data)
该函数用于发送 HTTP PUT 请求,将数据作为请求体发送。
3)QNetworkReply *get(const QNetworkRequest &request)
该函数用于发送 HTTP GET 请求,不发送任何数据。
4)QNetworkReply *deleteResource(const QNetworkRequest &request)
该函数用于发送 HTTP DELETE 请求,删除指定的资源。
5)QNetworkReply *head(const QNetworkRequest &request)
该函数用于发送 HTTP HEAD 请求,仅获取资源的响应头信息,而不获取响应体。
6)QNetworkReply *get(const QNetworkRequest &request, QHttpMultiPart *multiPart)
该函数用于发送 HTTP GET 请求,并将多部分消息作为请求体发送。该函数是在 Qt 4.8 中引入的。
7)QStringList supportedSchemes() const
该函数返回支持的所有 URL 方案列表。
8)QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &requestMethod)
该函数用于发送自定义请求,可以指定请求方法和请求头。
9)void setProxy(const QNetworkProxy &proxy)
该函数用于设置网络代理。
10)void setConfiguration(const QNetworkConfiguration &config)
该函数用于设置网络配置,可以指定使10)用的网络配置,包括代理、认证等。
11)QNetworkConfiguration activeConfiguration() const
该函数返回当前活动的网络配置。
1)发送POST请求:
#include
#include
#include
#include
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request(QUrl("http://example.com/post"));
request.setMethod(QNetworkRequest::PostMethod);
QByteArray postData = "key=value";
request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
QNetworkReply *reply = manager->post(request, postData);
connect(reply, &QNetworkReply::finished, this, [reply]() {
if (reply->error() != QNetworkReply::NoError) {
qDebug() << "Error:" << reply->errorString();
} else {
qDebug() << "Response:" << reply->readAll();
}
delete reply;
});
在上述代码中,我们首先创建了一个QNetworkAccessManager对象。然后,我们创建一个QNetworkRequest对象,指定请求的URL和请求方法为POST。接下来,我们设置请求头中的Content-Type为application/x-www-form-urlencoded,并使用postData将要发送的数据设置为请求体。最后,我们使用manager的post()方法发送请求,并使用connect()函数连接QNetworkReply的finished()信号,以便在请求完成时处理响应。
2)发送GET请求:
#include
#include
#include
#include
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QUrl url("http://example.com/get");
QUrlQuery query;
query.addQueryItem("key1", "value1");
query.addQueryItem("key2", "value2");
url.setQuery(query);
QNetworkRequest request(url);
request.setMethod(QNetworkRequest::GetMethod);
QNetworkReply *reply = manager->get(request);
connect(reply, &QNetworkReply::finished, this, [reply]() {
if (reply->error() != QNetworkReply::NoError) {
qDebug() << "Error:" << reply->errorString();
} else {
qDebug() << "Response:" << reply->readAll();
}
delete reply;
});
在上述代码中,我们创建了一个QNetworkAccessManager对象,并使用QUrl构建了一个URL对象,并使用QUrlQuery设置了查询参数。然后,我们创建一个QNetworkRequest对象,指定请求的URL和请求方法为GET。最后,我们使用manager的get()方法发送请求,并使用connect()函数连接QNetworkReply的finished()信号,以便在请求完成时处理响应。