Commit 427e28cc by 李定达

1.对接获取服务器地址接口并测试

parent 25b218e8
......@@ -17,7 +17,7 @@ BillSocket::~BillSocket()
}
bool BillSocket::S_Request(const QJsonObject &requestJson, QJsonObject &recvJson, QString url, QString &error)
bool BillSocket::S_Request(const QJsonObject &requestJson, QJsonObject &recvJson, QString url, QString &error, QByteArray contentype)
{
QNetworkAccessManager m_networkManger;
......@@ -28,7 +28,7 @@ bool BillSocket::S_Request(const QJsonObject &requestJson, QJsonObject &recvJson
QNetworkRequest networkRequest;
networkRequest.setUrl(url);
networkRequest.setRawHeader("Content-Type","text/json");
networkRequest.setRawHeader("Content-Type",contentype);
QByteArray sendArray = QJsonDocument(requestJson).toJson(QJsonDocument::Compact);
QEventLoop eventLoop;
......
......@@ -15,7 +15,7 @@ public:
bool Request(const QJsonObject& requestJson, QJsonObject& recvJson, QString url, QString& error);
static bool S_Request(const QJsonObject &requestJson, QJsonObject &recvJson, QString url, QString &error);
static bool S_Request(const QJsonObject &requestJson, QJsonObject &recvJson, QString url, QString &error, QByteArray contentype = QByteArray("text/json"));
private:
QNetworkAccessManager m_networkManger;
//QNetworkRequest m_networkRequest;
......
......@@ -65,7 +65,6 @@ public:
void setUrl(const QString &url);
void setAutoconfirm(const QString &autoconfirm);
signals:
void quit();
......
......@@ -3,11 +3,15 @@
#include <QStringList>
#include <QSslConfiguration>
#include <QTimer>
#include <QJsonObject>
#include <QJsonArray>
#include "preDefine.h"
#include "event/posevent.h"
#include "event/fmapplication.h"
#include "base/Network/billSocket.h"
#include "QsLog.h"
OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent)
......@@ -16,6 +20,7 @@ OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent)
_stopflag = 1;
_server_index = -1;
_token = QString("");
_serurl.clear();
FMApplication::subscibeEvent(this, PosEvent::s_token_change);
}
......@@ -35,10 +40,10 @@ void OrderPushWork::setStoreinfo(const QVariantMap &storeinfo)
_storeinfo = storeinfo;
}
void OrderPushWork::setServicelist(const QStringList &servicelist)
{
_servicelist = servicelist;
}
//void OrderPushWork::setServicelist(const QStringList &servicelist)
//{
// _servicelist = servicelist;
//}
QStringList OrderPushWork::servicelist() const
{
......@@ -263,6 +268,60 @@ bool OrderPushWork::checkMsgData(const QByteArray &msgdata)
return false;
}
bool OrderPushWork::GetServiceList()
{
if(_serurl.isEmpty())
{
QLOG_ERROR() << "_serurl is empty";
return false;
}
QJsonObject json;
json.insert(JSON_KEY_PUSH_PARTNERID, _storeinfo[JSON_KEY_PARTNERID].toString());
json.insert(JSON_KEY_PUSH_STOREID, _storeinfo[JSON_STOREID].toString());
json.insert(JSON_KEY_PUSH_PROTOCPL, QString("0"));
QLOG_INFO() << "get service list request json : " << json;
QString error;
QJsonObject recvjson;
if(!BillSocket::S_Request(json, recvjson, _serurl, error, QByteArray("application/json")))
{
error = QString::fromLocal8Bit("net work error : ").append(error);
QLOG_ERROR() << "get service list failed : " << error;
return false;
}
QLOG_INFO() << "recv json : " << recvjson;
if(recvjson.contains(JSON_KEY_CODE) && recvjson[JSON_KEY_CODE].toString().compare("ok", Qt::CaseInsensitive) == 0 &&
recvjson.contains(JSON_KEY_LISTDATA) && recvjson[JSON_KEY_LISTDATA].isArray())
{
QJsonArray array = recvjson[JSON_KEY_LISTDATA].toArray();
for(int i = 0; i < array.size(); ++ i)
{
QJsonObject tmp = array[i].toObject();
qDebug() << tmp;
if(tmp.contains(JSON_KEY_PUSH_PORT) &&
tmp.contains(JSON_KEY_PUSH_HOST) &&
!tmp[JSON_KEY_PUSH_HOST].toString().isEmpty())
{
QString tmpsock = tmp[JSON_KEY_PUSH_HOST].toString();
tmpsock = tmpsock.append(":").append(QString::number(tmp[JSON_KEY_PUSH_PORT].toInt()));
_servicelist.append(tmpsock);
}
}
}
if(_servicelist.isEmpty())
return false;
return true;
}
bool OrderPushWork::getHost(QString &ip, qint16 &port)
{
if(_servicelist.size() == 0)
......@@ -302,6 +361,14 @@ void OrderPushWork::workStart()
QLOG_INFO() << "get token success : " << _token;
while(!GetServiceList() && _stopflag)
{
QLOG_WARN() << "GetServiceList failed timeout 10 sec";
EVENTWAIT(10000);
}
QLOG_INFO() << "GetServiceList success : " << _servicelist;
while(_stopflag)
{
do
......@@ -333,6 +400,11 @@ void OrderPushWork::workStart()
}
}
void OrderPushWork::setSerurl(const QString &serurl)
{
_serurl = serurl;
}
void OrderPushWork::setToken(const QString &token)
{
_token = token;
......
......@@ -117,7 +117,7 @@ public:
void setStoreinfo(const QVariantMap &storeinfo);
void setServicelist(const QStringList &servicelist);
//void setServicelist(const QStringList &servicelist);
QStringList servicelist() const;
......@@ -129,6 +129,8 @@ public:
void setToken(const QString &token);
void setSerurl(const QString &serurl);
private:
//链接到服务器
bool connectTcpServer();
......@@ -141,6 +143,9 @@ public:
//检查是否有效的MSG
bool checkMsgData(const QByteArray &msgdata);
private:
bool GetServiceList();
public slots:
//推模式入口
void workStart();
......@@ -164,6 +169,8 @@ private:
QString _token;
//token 锁
QMutex _token_lock;
//获取服务器列表地址
QString _serurl;
};
......
......@@ -42,13 +42,17 @@ int main(int argc, char *argv[])
map.insert(JSON_KEY_PWD, "beiguo_saas");
map.insert(JSON_KEY_PARTNERID, "1585");
//map.insert(JSON_KEY_PARTNERID, "song_test");
//map.insert(JSON_STOREID, "test");
pwork.setStoreinfo(map);
QStringList list;
//QStringList list;
list.append("118.89.167.51:9083");
//list.append("118.89.167.51:9083");
pwork.setServicelist(list);
//pwork.setServicelist(list);
pwork.setSerurl("http://118.89.167.51:9100/gateway?redirect_url=http://10.20.10.106:9140/queryIdleServer&access_token=7705bf51-0832-49e3-8a3d-ac9a57ff0d4b&bf_ver=1");
QObject::connect(&thread, &QThread::started, &pwork, &OrderPushWork::workStart);
......@@ -177,17 +181,18 @@ int main(int argc, char *argv[])
//work.setUrl(QString("http://118.89.167.51:9100//gateway?action=%1&access_token=%2&ver=%3&sign=%4"));
work.setUrl(geturl);
//work.setSerurl(pushurl);
work.setAutoconfirm(autoconf);
work.setStoreinfo(map);
work.setTimeout(180000);
QStringList list;
//QStringList list;
//list.append("118.89.167.51:9083");
list.append(pushurl);
//list.append(pushurl);
pwork.setStoreinfo(map);
pwork.setServicelist(list);
pwork.setSerurl(pushurl);
loac.moveToThread(&thread);
work.moveToThread(&thread);
......
......@@ -120,6 +120,15 @@
#define JSON_KEY_VERSION "ver"
#define JSON_KEY_PARTNERID "partner_id"
#define JSON_KEY_PUSH_PARTNERID "partnerId"
#define JSON_KEY_PUSH_STOREID "storeId"
#define JSON_KEY_PUSH_PROTOCPL "protocol"
#define JSON_KEY_PUSH_PORT "port"
#define JSON_KEY_PUSH_HOST "host"
#define JSON_KEY_PUSH_URL "url"
#define JSON_KEY_USERID "user_id"
#define JSON_KEY_PWD "pwd"
#define JSON_KEY_TIMESTAMP "timestamp"
......@@ -142,6 +151,8 @@
#define JSON_KEY_TOKEN "token"
#define JSON_KEY_REASON "reason"
#define JSON_KEY_LISTDATA "listData"
#define JSON_KEY_ORDERID "order_id"
#define JSON_KEY_REASONCODE "reason_code"
#define JSON_KEY_REASON "reason"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment