fix network on pointed thread
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#include "DoricNetworkPlugin.h"
|
||||
#include "utils/DoricNetworkService.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
|
||||
@@ -7,35 +9,10 @@ void DoricNetworkPlugin::request(QString jsValueString, QString callbackId) {
|
||||
QJsonDocument document = QJsonDocument::fromJson(jsValueString.toUtf8());
|
||||
QJsonValue jsValue = document.object();
|
||||
|
||||
QString url = jsValue["url"].toString();
|
||||
QString method = jsValue["method"].toString();
|
||||
|
||||
QJsonValue headerVal = jsValue["headers"];
|
||||
QJsonValue dataVal = jsValue["data"];
|
||||
QJsonValue timeoutVal = jsValue["timeout"];
|
||||
|
||||
if (headerVal.isObject()) {
|
||||
foreach (QString key, headerVal.toObject().keys()) {
|
||||
httpRequest.setRawHeader(key.toUtf8(),
|
||||
headerVal[key].toString().toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
QObject::connect(&networkAccessManager, SIGNAL(finished(QNetworkReply *)),
|
||||
this, SLOT(networkRequestFinished(QNetworkReply *)));
|
||||
|
||||
if (method == "get") {
|
||||
httpRequest.setUrl(QUrl(url));
|
||||
networkAccessManager.get(httpRequest);
|
||||
}
|
||||
}
|
||||
void DoricNetworkPlugin::networkRequestFinished(QNetworkReply *reply) {
|
||||
int statusCode =
|
||||
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
|
||||
if (reply->error() == QNetworkReply::NoError) {
|
||||
} else {
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
DoricNetworkService::getInstance()->request(jsValue, qApp,
|
||||
[](int code, QByteArray data) {
|
||||
qDebug() << code;
|
||||
qDebug() << data;
|
||||
qDebug() << "";
|
||||
});
|
||||
}
|
||||
|
@@ -3,23 +3,11 @@
|
||||
|
||||
#include "DoricNativePlugin.h"
|
||||
|
||||
#include <QSettings>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkAccessManager>
|
||||
|
||||
class DoricNetworkPlugin : public DoricNativePlugin {
|
||||
Q_OBJECT
|
||||
public:
|
||||
using DoricNativePlugin::DoricNativePlugin;
|
||||
|
||||
Q_INVOKABLE void request(QString jsValueString, QString callbackId);
|
||||
|
||||
private:
|
||||
QNetworkRequest httpRequest;
|
||||
QNetworkAccessManager networkAccessManager;
|
||||
|
||||
public slots:
|
||||
void networkRequestFinished(QNetworkReply *reply);
|
||||
};
|
||||
#endif // DORICNETWORKPLUGIN_H
|
||||
|
Reference in New Issue
Block a user