問題があります。QT、クロスプラットフォーム、iOS &アンドロイドでアプリを作っています。私はこのコードを呼び出すとき だから: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;
}
問題は、Android上でこのコードは動作しないということです。 代わりにiosが動作します。アンドロイドの返信は空です。
おそらく、https urlがアンドロイドコールで問題を作成している可能性がありますか?私はそれを修正する方法を理解していません。 私は、マニフェストで多くのアクセス許可をデバイスに設定しました。インターネット許可が設定されています。
今、多くのアイデアは動作しますか?私はasus zen pad 3sとiphone 7でテストしています。アンドロイドでのみ動作しません。どうして ?私はqtを使用する5.9
ありがとうございます。