Я пытаюсь отправить два запроса A, который получает токен аутентификации, и B, который использует токен для получения информации о пользователе.
Вот упрощенная версия моего кода:
MyClass::MyClass()
: _manager(new QNetworkAccessManager(this)),
_token(QString()) {
}
void MyClass::authentificationRequest(const QString &username,
const QString &password) {
QString credentials = QString("email=%0&password=%1").arg(username, password);
QNetworkRequest request(QUrl("https://a.com/log"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkReply *reply = _manager->post(request, credentials.toUtf8());
connect(reply, &QNetworkReply::finished, this, &MyClass::reply);
}
void MyClass::userInfoRequest() {
QNetworkRequest request(QUrl("https://a.com/info"));
request.setRawHeader("Authorization", QByteArray("Bearer " + _token.toUtf8()));
QNetworkReply *reply = _manager->get(request);
connect(reply, &QNetworkReply::finished, this, &MyClass::reply);
}
void MyClass::reply() {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if (reply->url() == QUrl { "https://a.com/log" }) {
storeToken(reply);
userInfoRequest();
}
if (reply->url() == QUrl { "https://a.com/info" }) {
if (reply->error() == QNetworkReply::NoError) {
qDebug() << "reading: " << reply->readAll();
} else {
qDebug() << reply->error();
}
}
reply->deleteLater();
}
Первый запрос получает ответ, а второй - нет.Буду признателен, если у кого-то есть объяснение?Заранее спасибо.