문제가 생겼습니다. QT, 크로스 플랫폼, iOS & android에서 앱을 만들고 있습니다. 이 코드를 호출 할 때 그래서 :QNetworkReply https API가 Android 기기에서 작동하지 않습니다. - QT
QList<QString> JsonFunctions::getToken(QString Username, QString Password)
{
QString lista;
QEventLoop eventLoop;
QNetworkAccessManager mgr;
QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
QJsonObject json;
json.insert("username", Username);
json.insert("password", Password);
json.insert("client_id","10");
json.insert("client_secret","xxx");
json.insert("scope","xxx");
json.insert("grant_type","password");
json.insert("accept", "application/json");
QNetworkRequest request(QUrl("https://xxxxx/api/v2/login"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QSslConfiguration conf = request.sslConfiguration();
conf.setPeerVerifyMode(QSslSocket::VerifyNone);
request.setSslConfiguration(conf);
QNetworkReply *reply = mgr.post(request, QJsonDocument(json).toJson());
eventLoop.exec();
QString strReply = (QString)reply->readAll();
qDebug() << "reply" << strReply;
qDebug() << "code" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
QJsonDocument doc = QJsonDocument::fromJson(strReply.toUtf8());
QJsonObject responseObject = doc.object();
QString token_type = responseObject.value("token_type").toString();
QString access_token = responseObject.value("access_token").toString();
QString refresh_token = responseObject.value("refresh_token").toString();
QList<QString> lists;
lists.append(token_type);
lists.append(access_token);
lists.append(refresh_token);
return lists;
}
문제는 안드로이드에이 코드가 작동하지 않는다는 것입니다. 대신 ios가 작동합니다. 안드로이드에 대한 회신은 비어 있습니다.
https url이 (가) 안드로이드 전화에서 문제를 만들었습니까? 나는 그것을 고치는 방법을 이해하지 못한다. 매니페스트에서 인터넷 권한이 설정되어있는 많은 권한을 기기에 설정했습니다.
이제 많은 아이디어가 작동합니까? 나는 asus zen pad 3s와 iphone 7을 테스트 중이다. 안드로이드에서만 작동하지 않는다. 왜 ? Qt 5.9를 사용합니다.
미리 감사드립니다.