|
@@ -14,6 +14,7 @@ using std::regex;
|
|
|
#include "iniutil.h"
|
|
|
#include "json/json.h"
|
|
|
|
|
|
+#include "CommEntityRestful.hpp"
|
|
|
#include "mod_centersetting.h"
|
|
|
#include "SpUtility.h"
|
|
|
#include "RVCComm.h"
|
|
@@ -153,7 +154,7 @@ int CenterSettingsMicroServiceHelper::GetCenterSetting(bool byHand)
|
|
|
|
|
|
if (m_isFirst) m_isFirst = false;
|
|
|
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_strVersion:%s", m_strVersion.GetData());
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_strVersion:%s", req.m_version.c_str());
|
|
|
req.m_update_time = GetUpdateTime();
|
|
|
GetTimeoutValue(req.m_timeOut);
|
|
|
|
|
@@ -164,6 +165,7 @@ int CenterSettingsMicroServiceHelper::GetCenterSetting(bool byHand)
|
|
|
req.m_url = m_strUrl;
|
|
|
m_strCurUrl = req.m_url;
|
|
|
req.m_url += "?update_time=" + req.m_update_time + "&terminal_no=" + req.m_terminal_no + "&version=" + req.m_version;
|
|
|
+ Dbg("m_url1 = %s", req.m_url.c_str());
|
|
|
ret1 = GetCenterSettingsFromHttp(req, m_strErrMsg);
|
|
|
} else {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("GetCenterSetting")("集中配置文件中地址为空,使用默认地址");
|
|
@@ -180,6 +182,7 @@ int CenterSettingsMicroServiceHelper::GetCenterSetting(bool byHand)
|
|
|
req.m_url = m_urlsFromShell[i].GetData();
|
|
|
m_strCurUrl = m_urlsFromShell[i].GetData();
|
|
|
req.m_url += "?update_time=" + req.m_update_time + "&terminal_no=" + req.m_terminal_no + "&version=" + req.m_version;
|
|
|
+ Dbg("m_url2 = %s", req.m_url.c_str());
|
|
|
ret1 = GetCenterSettingsFromHttp(req, m_strErrMsg);
|
|
|
if (ret1 == SUCC || ret1 == EXIST)
|
|
|
break;
|
|
@@ -384,19 +387,45 @@ int CenterSettingsMicroServiceHelper::GetCenterSettingsFromHttp(CenterSettingReq
|
|
|
LOG_FUNCTION();
|
|
|
CenterSettingResponse res;
|
|
|
|
|
|
-#ifdef WITH_CPPRESTSDK_IN_CENTER
|
|
|
+ struct GetCenterSettingReq
|
|
|
+ {
|
|
|
+ string m_terminal_no;
|
|
|
+ string m_version;
|
|
|
+ string m_update_time;
|
|
|
+ string m_config;
|
|
|
+ JSONCONVERT2OBJECT_MEMEBER_REGISTER(m_terminal_no, m_version, m_update_time, m_config)
|
|
|
+ } getCenterSettingReq;
|
|
|
+
|
|
|
+ struct GetCenterSettingAns
|
|
|
+ {
|
|
|
+ bool success;
|
|
|
+ string message;
|
|
|
+ bool is_update;
|
|
|
+ bool is_reset;
|
|
|
+ string version_no;
|
|
|
+ string sm3;
|
|
|
+ string config;
|
|
|
+ JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, message, is_update, is_reset, version_no, sm3, config)
|
|
|
+ }getCenterSettingAns;
|
|
|
+
|
|
|
HttpClientResponseResult result;
|
|
|
- RestfulClient client = RestfulClient::getInstance();
|
|
|
- HttpClientRequestConfig config(HttpRequestMethod::POST);
|
|
|
- config.SetUri(req.m_url);
|
|
|
- //config.AppendQuery("update_time", req.m_update_time);
|
|
|
- //config.AppendQuery("terminal_no", req.m_terminal_no);
|
|
|
- //config.AppendQuery("version", req.m_version);
|
|
|
+ HttpClientRequestConfig config(HttpRequestMethod::POST, req.m_url);
|
|
|
if (req.m_timeOut > 0) config.SetTimeout(req.m_timeOut);
|
|
|
- SP::Module::Restful::FulfillRequestJsonBody(&config, req);
|
|
|
|
|
|
+ getCenterSettingReq.m_terminal_no = req.m_terminal_no;
|
|
|
+ getCenterSettingReq.m_version = req.m_version;
|
|
|
+ getCenterSettingReq.m_update_time = req.m_update_time;
|
|
|
+ getCenterSettingReq.m_config = req.m_config;
|
|
|
+
|
|
|
+ SP::Module::Restful::FulfillRequestJsonBody(&config, getCenterSettingReq);
|
|
|
+
|
|
|
+ Dbg("Geting centtersetting...");
|
|
|
+
|
|
|
+ RestfulClient client = RestfulClient::getInstance();
|
|
|
config.PreDo();
|
|
|
client.Do(&config, &result);
|
|
|
+
|
|
|
+ Dbg("ret result.ResponseOK() = %d.", result.ResponseOK());
|
|
|
if (!result.ResponseOK()) {
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Do failed: %s", result.WhatError().c_str());
|
|
|
errMsg = result.WhatError();
|
|
@@ -411,41 +440,23 @@ int CenterSettingsMicroServiceHelper::GetCenterSettingsFromHttp(CenterSettingReq
|
|
|
}
|
|
|
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s", result.content.length() > 1000 ? result.content.substr(0, 1000).c_str() : result.content.c_str());
|
|
|
- if (!SP::Module::Restful::ExtractDataFromDebranchResponse(result.content, res)) {
|
|
|
+ if (!SP::Module::Restful::ExtractDataFromDebranchResponse(result.content, getCenterSettingAns)) {
|
|
|
DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM)("parse json data node failed: ");
|
|
|
errMsg = "解析集中配置返回的信息失败";
|
|
|
return UNknown;
|
|
|
}
|
|
|
- transferblank(res.m_version_no);
|
|
|
- /** 当时粤超开发Windows版本时,要求服务端将数组转化为字符串传送,这边信创为了兼容,需要重新转为数组处理(信创是支持JSON数组) [Gifur@202398]*/
|
|
|
- string strConfig = res.m_strConfig;
|
|
|
-
|
|
|
- SP::Utility::replaceInPlace(res.m_strConfig, "\\\"", "\"");
|
|
|
- if (!Json2Object(res.m_config, res.m_strConfig)) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("parse config content failed!");
|
|
|
- errMsg = "解析集中配置返回的配置信息失败";
|
|
|
- return UNknown;
|
|
|
- }
|
|
|
-
|
|
|
-#else
|
|
|
-
|
|
|
- bool ret = m_pHttpFunc->Post(req, res);
|
|
|
- if (!ret || !res.m_success) {
|
|
|
- errMsg = res.m_errMsg;
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("GetCenterSettingsFromHttp")("访问失败:%s", res.m_errMsg.c_str());
|
|
|
- if (res.m_sysCode == 28 || res.m_sysCode == 7)
|
|
|
- return AccessServiceFail;
|
|
|
- return MANUAL;
|
|
|
- }
|
|
|
-
|
|
|
-#if defined(_MSC_VER)
|
|
|
- SP::Module::Util::ConvertGBKToUtf8(res.m_strConfig);
|
|
|
- string strConfig = res.m_strConfig;
|
|
|
-#else
|
|
|
+ //transferblank(centerSettingAns.version_no);
|
|
|
+ ///** 当时粤超开发Windows版本时,要求服务端将数组转化为字符串传送,这边信创为了兼容,需要重新转为数组处理(信创是支持JSON数组) [Gifur@202398]*/
|
|
|
+ //string strConfig = centerSettingAns.config;
|
|
|
+ //vector<ConfigItem> m_config;
|
|
|
+ //SP::Utility::replaceInPlace(centerSettingAns.config, "\\\"", "\"");
|
|
|
+ //if (!Json2Object(m_config, centerSettingAns.config)) {
|
|
|
+ // DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("parse config content failed!");
|
|
|
+ // errMsg = "解析集中配置返回的配置信息失败";
|
|
|
+ // return UNknown;
|
|
|
+ //}
|
|
|
+ res.Parse(result.content);
|
|
|
string strConfig = SP::Utility::GBK2UTF8(res.m_strConfig);
|
|
|
-#endif //_MSC_VER
|
|
|
-
|
|
|
-#endif //WITH_CPPRESTSDK_IN_CENTER
|
|
|
|
|
|
if (!res.m_is_update) {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("GetCenterSetting")("Centersetting not changed.");
|