Parcourir la source

!2 add httpTrace to restfulFunc

chenliangyu il y a 6 mois
Parent
commit
65f3ea346d

+ 2 - 1
DevAdapter/simulator/deps/libSimulaRestful/RestfulFunc.h

@@ -25,6 +25,7 @@
 #include <map>
 #include <vector>
 #include <sstream>
+#include "httpTrace_define.hpp"
 
 /*
 * > 0 : 网站返回的错误码,比如 200,404 等
@@ -291,7 +292,7 @@ public:
     static RestfulClient& getInstance(); // Singleton
     ~RestfulClient();
 
-    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const;
+    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const;
 
 private:
     RestfulClient();

+ 15 - 1
DevAdapter/simulator/deps/libSimulaRestful/RestfulFuncImpl.cpp

@@ -159,7 +159,7 @@ namespace
     }
 }
 
-void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const
+void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const
 {
 	http_client_config config;
 	config.set_validate_certificates(pRequestConfig->NeedValidCert());
@@ -189,6 +189,20 @@ void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, Http
 		request.headers().add(STRW("terminalno"), STRW(terminalno));
 	}
 
+	if (pTrace != NULL
+		&& strlen(pTrace->X_B3_BusinessId) > 0
+		&& strlen(pTrace->X_B3_TraceId) > 0
+		&& strlen(pTrace->X_B3_SpanId) > 0
+		&& strlen(pTrace->X_B3_ParentSpanId) > 0
+		&& strlen(pTrace->X_B3_Timestamp) > 0)
+	{
+		request.headers().add(STRW("X_B3_BusinessId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_TraceId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_SpanId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_ParentSpanId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_Timestamp"), STRW(pTrace->X_B3_BusinessId));
+	}
+
 	if (pRequestConfig->GetRequestType() != HttpRequestMethod::GET) {
 		request.set_body(STRW(pRequestConfig->GetBodyContent()), STRW(pRequestConfig->GetContentType()));
 	}

+ 3 - 3
DevAdapter/simulator/include/DeviceSimulator.h

@@ -33,6 +33,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #endif
+#include <SpBase.h>
 
 using namespace std;
 #define DEFAULT_DATA_URL "http://emulator.paasst.cmbchina.cn/emulator/avs/retrieveEmulatorData"
@@ -380,9 +381,8 @@ ErrorCodeEnum SimulatorHttpFunction(string entityName, string devFuncName)
 	HttpClientRequestConfig config(HttpRequestMethod::POST, GetSimulatorUrl().c_str(), NULL);
 	SP::Simulator::Restful::FulfillRequestJsonBody(&config, simulatorCommonReq);
 	RestfulClient client = RestfulClient::getInstance();
-
 	config.PreDo();
-	client.Do(&config, &result);
+	client.Do(&config, &result, NULL);
 	if (result.ResponseOK()) {
 		SP::Simulator::Restful::CommSimulatorRes commRes;
 		SP::Simulator::Restful::GetStatusFromDebranchResponse(result.content, commRes);
@@ -411,7 +411,7 @@ ErrorCodeEnum SimulatorHttpFunction(string entityName, string devFuncName, T& ob
 	RestfulClient client = RestfulClient::getInstance();
 
 	config.PreDo();
-	client.Do(&config, &result);
+	client.Do(&config, &result, NULL);
 	if (result.ResponseOK()) {
 		SP::Simulator::Restful::CommSimulatorRes commRes;
 		SP::Simulator::Restful::GetStatusFromDebranchResponse(result.content, commRes);

+ 54 - 12
Framework/Common/SpBase.h

@@ -57,6 +57,7 @@
 #endif // __cplusplus
 
 #include "ErrorCode.h"
+#include "httpTrace_define.hpp"
 
 #ifndef MODULE_VERSION_FULL
 	#define MODULE_VERSION_FULL  "0.0.0"
@@ -395,25 +396,24 @@ struct CLightPackInfo
 
 SPBASE_API CSimpleStringA uuid4_generateStr(int len);
 
-struct linkContext
-{
+struct linkContext {
 	CSimpleStringA bussinessId;
 	CSimpleStringA traceId;
 	CSimpleStringA spanId;
 	CSimpleStringA parentSpanId;
+	CSimpleStringA timestamp; // 新增的 timestamp 字段
 
-	linkContext():bussinessId(true), traceId(true), spanId(true), parentSpanId(true){}
-	linkContext(CSimpleStringA t_bussinessId, CSimpleStringA t_traceId, CSimpleStringA t_spanId, CSimpleStringA t_parentSpanId) {
-		bussinessId = t_bussinessId;
-		traceId = t_traceId;
-		spanId = t_spanId;
-		parentSpanId = t_parentSpanId;
+	linkContext() : bussinessId(true), traceId(true), spanId(true), parentSpanId(true) {
+		updateTimestamp(); // 初始化时生成时间戳
 	}
 
-	void Init(const char* t_bussId, const char* t_traceId, const char* t_spanId, const char* t_parentSpanId)
-	{
-		if (t_bussId && t_traceId && t_spanId && t_parentSpanId)
-		{
+	linkContext(CSimpleStringA t_bussinessId, CSimpleStringA t_traceId, CSimpleStringA t_spanId, CSimpleStringA t_parentSpanId)
+		: bussinessId(t_bussinessId), traceId(t_traceId), spanId(t_spanId), parentSpanId(t_parentSpanId) {
+		updateTimestamp(); // 初始化时生成时间戳
+	}
+
+	void Init(const char* t_bussId, const char* t_traceId, const char* t_spanId, const char* t_parentSpanId) {
+		if (t_bussId && t_traceId && t_spanId && t_parentSpanId) {
 			char copy_bussId[LINKINFO_BUSSID_LEN + 1], copy_traceId[LINKINFO_TRACEID_LEN + 1];
 			char copy_spanId[LINKINFO_SPANID_LEN + 1], copy_parentSpanId[LINKINFO_PARENTSPANID_LEN + 1];
 			memset(copy_bussId, 0, sizeof(copy_bussId));
@@ -428,21 +428,47 @@ struct linkContext
 			traceId = copy_traceId;
 			spanId = copy_spanId;
 			parentSpanId = copy_parentSpanId;
+			updateTimestamp(); // 初始化时生成时间戳
 		}
 	}
 
+	void updateTimestamp()
+	{
+		time_t timestamp_seconds = time(NULL);
+
+		// 将时间戳转换为字符串
+		timestamp = CSimpleStringA::Format("%ld", timestamp_seconds);
+	}
+	HttpClientTraceLink convertToHttpClientTraceLink()
+	{
+		HttpClientTraceLink traceLink;
+		memset(&traceLink, 0, sizeof(traceLink)); // 初始化结构体
+
+		// 复制字段数据
+		strncpy(traceLink.X_B3_BusinessId, bussinessId.GetData(), sizeof(traceLink.X_B3_BusinessId) - 1);
+		strncpy(traceLink.X_B3_TraceId, traceId.GetData(), sizeof(traceLink.X_B3_TraceId) - 1);
+		strncpy(traceLink.X_B3_SpanId, spanId.GetData(), sizeof(traceLink.X_B3_SpanId) - 1);
+		strncpy(traceLink.X_B3_ParentSpanId, parentSpanId.GetData(), sizeof(traceLink.X_B3_ParentSpanId) - 1);
+		strncpy(traceLink.X_B3_Timestamp, timestamp.GetData(), sizeof(traceLink.X_B3_Timestamp) - 1);
+
+		return traceLink; // 返回结构体副本
+	}
+
 	linkContext& operator=(const linkContext& tmp) {
 		bussinessId = tmp.bussinessId;
 		traceId = tmp.traceId;
 		spanId = tmp.spanId;
 		parentSpanId = tmp.parentSpanId;
+		timestamp = tmp.timestamp;
 		return *this;
 	}
+
 	void clear() {
 		bussinessId = "";
 		traceId = "";
 		spanId = "";
 		parentSpanId = "";
+		timestamp = "";
 	}
 
 	linkContext upgradeLink() const {
@@ -458,6 +484,7 @@ struct linkContext
 		else {
 			spanId = uuid4_generateStr(LINKINFO_SPANID_LEN);
 			parentSpanId = spanId;
+			updateTimestamp(); // 更新时生成时间戳
 			return *this;
 		}
 	}
@@ -471,6 +498,15 @@ struct linkContext
 		traceId = uuid4_generateStr(LINKINFO_TRACEID_LEN);
 		spanId = uuid4_generateStr(LINKINFO_SPANID_LEN);
 		parentSpanId = "0";
+		updateTimestamp(); // 自动生成时生成时间戳
+	}
+
+	void AutoGenerate(CSimpleString t_bussinessId) {
+		bussinessId = t_bussinessId;
+		traceId = uuid4_generateStr(LINKINFO_TRACEID_LEN);
+		spanId = uuid4_generateStr(LINKINFO_SPANID_LEN);
+		parentSpanId = "0";
+		updateTimestamp(); // 自动生成时生成时间戳
 	}
 };
 
@@ -1557,6 +1593,12 @@ private:
 	const DbgToBeidou& operator=(const DbgToBeidou&) { return *this; };
 };
 
+#define PROCESS_LINK_CONTEXT(linkName) \
+	linkContext linkContextVar; \
+    linkContextVar.AutoGenerate(linkName); \
+    DbgToBeidou(linkContextVar, __FUNCTION__)(); \
+    linkContextVar.upgradeLinkAndSave(); \
+    HttpClientTraceLink nextLink = linkContextVar.convertToHttpClientTraceLink();
 
 class SPBASE_API DbgWithLink {
 public:

+ 14 - 0
Framework/Common/httpTrace_define.hpp

@@ -0,0 +1,14 @@
+#ifndef _HTTP_CLIENT_TRACE_HEADER_
+#define _HTTP_CLIENT_TRACE_HEADER_
+#pragma once
+#include <stdio.h>
+
+struct HttpClientTraceLink {
+    char X_B3_BusinessId[32];  // 业务ID
+    char X_B3_TraceId[32];     // 跟踪ID
+    char X_B3_SpanId[16];       // 跨度ID
+    char X_B3_ParentSpanId[16]; // 父跨度ID
+    char X_B3_Timestamp[16];    // 时间戳
+};
+
+#endif

+ 2 - 2
Framework/RvcLogSdk/baseFun.cpp

@@ -45,7 +45,7 @@ int RvcLogSdkManager::LOG_OS_TestLogPost(const char* url, const char* body)
     config.SetJsonBody(str.c_str());
     RestfulClient client = RestfulClient::getInstance();
     config.PreDo();
-    client.Do(&config, &result);
+    client.Do(&config, &result, NULL);//Test Logs
     return 0;
 }
 int RvcLogSdkManager::SendTestLog(const char* body)
@@ -62,7 +62,7 @@ int RvcLogSdkManager::SendTestLog(const char* body)
     sendErr.SetJsonBody(jsonReq.c_str());
     RestfulClient client = RestfulClient::getInstance();
     sendErr.PreDo();
-    client.Do(&sendErr, &curResult);
+    client.Do(&sendErr, &curResult, NULL);//Test Logs
     return 0;
 }
 

+ 1 - 1
Framework/RvcLogSdk/log_api.cpp

@@ -226,7 +226,7 @@ int LOG_OS_HttpPost(const char* url,
 
 	RestfulClient client = RestfulClient::getInstance();
 	config.PreDo();
-	client.Do(&config, &result);
+	client.Do(&config, &result, NULL);//upload log should not add trace link, which will cause infinite loop
 	if (result.ResponseOK()) {
 
 		retCode = 481;

+ 2 - 1
Framework/RvcRestfulSdk/RestfulFunc.h

@@ -25,6 +25,7 @@
 #include <map>
 #include <vector>
 #include <sstream>
+#include "httpTrace_define.hpp"
 
 enum HttpRequestMethod
 {
@@ -232,7 +233,7 @@ public:
     static RestfulClient& getInstance(); // Singleton
     ~RestfulClient();
 
-    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const;
+    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const;
 
 private:
     RestfulClient();

+ 14 - 1
Framework/RvcRestfulSdk/RestfulFuncImpl.cpp

@@ -174,7 +174,7 @@ namespace
 #define WSTR(str) (str)
 #endif //_MSC_VER
 
-void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const
+void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const
 {
     http_client_config config;
     config.set_validate_certificates(pRequestConfig->NeedValidCert());
@@ -202,6 +202,19 @@ void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, Http
         request.headers().add(STRW("token"), STRW(token));
         request.headers().add(STRW("terminalno"), STRW(terminalno));
     }
+    if (pTrace != NULL
+        && strlen(pTrace->X_B3_BusinessId) > 0
+        && strlen(pTrace->X_B3_TraceId) > 0
+        && strlen(pTrace->X_B3_SpanId) > 0
+        && strlen(pTrace->X_B3_ParentSpanId) > 0
+        && strlen(pTrace->X_B3_Timestamp) > 0)
+    {
+        request.headers().add(STRW("X_B3_BusinessId"), STRW(pTrace->X_B3_BusinessId));
+        request.headers().add(STRW("X_B3_TraceId"), STRW(pTrace->X_B3_BusinessId));
+        request.headers().add(STRW("X_B3_SpanId"), STRW(pTrace->X_B3_BusinessId));
+        request.headers().add(STRW("X_B3_ParentSpanId"), STRW(pTrace->X_B3_BusinessId));
+        request.headers().add(STRW("X_B3_Timestamp"), STRW(pTrace->X_B3_BusinessId));
+    }
 
     if (pRequestConfig->GetRequestType() != HttpRequestMethod::GET) {
         request.set_body(STRW(pRequestConfig->GetBodyContent()), STRW(pRequestConfig->GetContentType()));

+ 1 - 1
Framework/spbase/CMakeLists.txt

@@ -1,7 +1,7 @@
 set(MODULE_NAME "spbase")
 set(MODULE_PREFIX "SPBASE")
 
-file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.c")
+file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h" "*.cpp" "*.c" "*.hpp")
 
 list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
     "SpVitualDevice.h" 

+ 2 - 1
Framework/spbase/SpBase.cpp

@@ -41,6 +41,7 @@
 #include <winpr/locale.h>
 #include <winpr/exception.h>
 #include "uuid4.h"
+#include <chrono>
 
 
 #ifndef RVC_OS_WIN
@@ -929,4 +930,4 @@ CSimpleStringA uuid4_generateStr(int len)
 {
 	auto ret = uuid4_generate(len);
 	return ret.c_str();
-}
+}

+ 4 - 2
Module/mod_CenterSetting/CenterSettingConn.cpp

@@ -523,8 +523,9 @@ void CenterSettingsMicroServiceHelper::UpdateVersion()
     SP::Module::Restful::FulfillRequestJsonBody(&config, updateVersionReq);
 
     RestfulClient client = RestfulClient::getInstance();
+    PROCESS_LINK_CONTEXT("LR0402updateVersion");
     config.PreDo();
-    client.Do(&config, &result);
+    client.Do(&config, &result, &nextLink);
 
     DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("返回内容为 %s", result.content.length() > 1000 ? result.content.substr(0, 1000).c_str() : result.content.c_str());
 
@@ -711,8 +712,9 @@ int CenterSettingsMicroServiceHelper::GetCenterSettingsFromHttp(CenterSettingReq
     Dbg("Geting centtersetting...");
 
     RestfulClient client = RestfulClient::getInstance();
+    PROCESS_LINK_CONTEXT("LR0402getCentersetting");
     config.PreDo();
-    client.Do(&config, &result);
+    client.Do(&config, &result, &nextLink);
 
     Dbg("ret result.ResponseOK() = %d.", result.ResponseOK());
     if (!result.ResponseOK()) {

+ 6 - 3
Module/mod_accessauth/AccessAuthFSM.cpp

@@ -143,6 +143,7 @@ struct TimeSynTask : ITaskSp
 		config.SetChildUri("/api/v3/sessionkey");
 		SP::Module::Restful::FulfillRequestJsonBody(&config, timeSyncReq);
 		RestfulClient client = RestfulClient::getInstance();
+		PROCESS_LINK_CONTEXT("LR0402sessionkey");
 
 		if (m_fsm->containsChinese(m_fsm->GetmAccessAuthHost().GetData()))
 		{
@@ -161,7 +162,7 @@ struct TimeSynTask : ITaskSp
 		test = config.GetRequestUri();
 
 		config.PreDo();
-		client.Do(&config, &result);
+		client.Do(&config, &result, &nextLink);
 
 		if (result.ResponseOK()) {
 			SP::Module::Restful::CommResponseJson responseStatus;
@@ -305,9 +306,10 @@ struct UpdateWKTask : ITaskSp
 		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("请求地址:%s.", test.c_str());
 
 		RestfulClient client = RestfulClient::getInstance();
+		PROCESS_LINK_CONTEXT("LR0402wkupdate");
 		config.PreDo();
 		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("to Post with new restful....");
-		client.Do(&config, &result);
+		client.Do(&config, &result, &nextLink);
 		if (result.ResponseOK()) {
 			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("UpdateWKTask Connect With Restful Success.");
 			SP::Module::Restful::CommResponseJson responseStatus;
@@ -393,9 +395,10 @@ struct GetTokenTask : ITaskSp
 
 		SP::Module::Restful::FulfillRequestJsonBody(&config, getTokenReq);
 		RestfulClient client = RestfulClient::getInstance();
+		PROCESS_LINK_CONTEXT("LR0402access");
 		config.PreDo();
 
-		client.Do(&config, &result);
+		client.Do(&config, &result, &nextLink);
 		if (result.ResponseOK()) {
 			SP::Module::Restful::CommResponseJson responseStatus;
 			SP::Module::Restful::GetStatusFromDebranchResponse(result.content, responseStatus);

+ 2 - 1
Module/mod_accessauth/mod_AccessAuth.cpp

@@ -74,9 +74,10 @@ struct InitializerInitMKTask : ITaskSp
 		config.SetChildUri("/api/v6/initmk");
 		SP::Module::Restful::FulfillRequestJsonBody(&config, instanceReq);
 		RestfulClient client = RestfulClient::getInstance();
+		PROCESS_LINK_CONTEXT("LR0402initmk");
 		config.PreDo();
 
-		client.Do(&config, &result);
+		client.Do(&config, &result, &nextLink);
 		if (result.ResponseOK()) {
 			SP::Module::Restful::CommResponseJson responseStatus;
 			SP::Module::Restful::GetStatusFromDebranchResponse(result.content, responseStatus);

+ 2 - 1
Module/mod_alarm/AlarmFSM.cpp

@@ -155,8 +155,9 @@ namespace Task
 			}
 			config.SetJsonBody(reqStr);
 			RestfulClient client = RestfulClient::getInstance();
+			PROCESS_LINK_CONTEXT("LR0402alarm");
 			config.PreDo();
-			client.Do(&config, &result);
+			client.Do(&config, &result, &nextLink);
 			//判断结果
 			if(result.ResponseOK()){
 				//解析返回字符串

+ 2 - 1
Other/libRestfulFunc/RestfulFunc.h

@@ -25,6 +25,7 @@
 #include <map>
 #include <vector>
 #include <sstream>
+#include "httpTrace_define.hpp"
 
 /*
 * > 0 : 网站返回的错误码,比如 200,404 等
@@ -291,7 +292,7 @@ public:
     static RestfulClient& getInstance(); // Singleton
     ~RestfulClient();
 
-    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const;
+    void Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const;
 
 private:
     RestfulClient();

+ 15 - 1
Other/libRestfulFunc/RestfulFuncImpl.cpp

@@ -159,7 +159,7 @@ namespace
     }
 }
 
-void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse) const
+void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, HttpClientResponseResult* pResponse, HttpClientTraceLink* pTrace) const
 {
 	http_client_config config;
 	config.set_validate_certificates(pRequestConfig->NeedValidCert());
@@ -189,6 +189,20 @@ void RestfulClient::Do(const HttpClientRequestConfig* const pRequestConfig, Http
 		request.headers().add(STRW("terminalno"), STRW(terminalno));
 	}
 
+	if (pTrace != NULL
+		&& strlen(pTrace->X_B3_BusinessId) > 0
+		&& strlen(pTrace->X_B3_TraceId) > 0
+		&& strlen(pTrace->X_B3_SpanId) > 0
+		&& strlen(pTrace->X_B3_ParentSpanId) > 0
+		&& strlen(pTrace->X_B3_Timestamp) > 0)
+	{
+		request.headers().add(STRW("X_B3_BusinessId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_TraceId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_SpanId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_ParentSpanId"), STRW(pTrace->X_B3_BusinessId));
+		request.headers().add(STRW("X_B3_Timestamp"), STRW(pTrace->X_B3_BusinessId));
+	}
+
 	if (pRequestConfig->GetRequestType() != HttpRequestMethod::GET) {
 		request.set_body(STRW(pRequestConfig->GetBodyContent()), STRW(pRequestConfig->GetContentType()));
 	}

+ 4 - 4
Other/libRestfulFunc/test/testNormlReqAns.cpp

@@ -8,7 +8,7 @@ TEST_CASE("test api manage", "[restful]")
     HttpClientResponseResult result;
     config.SetChildUri("/api/manage/regist/7555980103");
     RestfulClient client = RestfulClient::getInstance();
-    client.Do(&config, &result);
+    client.Do(&config, &result,NULL);
     std::cout << result.content << std::endl;
     REQUIRE(!result.content.empty());
 }
@@ -20,7 +20,7 @@ TEST_CASE("test  api stage get api", "[restful]")
     config.SetChildUri("/api/stage");
     config.AppendQuery("terminalNo", "7555980001");
     RestfulClient client = RestfulClient::getInstance();
-    client.Do(&config, &result);
+    client.Do(&config, &result, NULL);
     std::cout << result.content << std::endl;
     REQUIRE(!result.content.empty());
 }
@@ -33,7 +33,7 @@ TEST_CASE("test  api stage post api", "[restful]")
     config.SetJsonBody("{\"terminalNo\":\"7555980001\", \"errEntityList\":\"566666\"}");
     RestfulClient client = RestfulClient::getInstance();
     HttpClientResponseResult result;
-    client.Do(&config, &result);
+    client.Do(&config, &result, NULL);
     std::cout << result.content << std::endl;
     REQUIRE(!result.content.empty());
 }
@@ -47,7 +47,7 @@ TEST_CASE("test  api stage upload api", "[restful]")
     RestfulClient client = RestfulClient::getInstance();
     HttpClientResponseResult result;
     config.PreDo();
-    client.Do(&config, &result);
+    client.Do(&config, &result, NULL);
     std::cout << result.content << std::endl;
     REQUIRE(!result.content.empty());
 }

+ 2 - 2
Other/libpublicFun/exLog/skyeyeLog.cpp

@@ -181,7 +181,7 @@ public:
 			config.SetJsonBody(root_str);
 
 			RestfulClient client = RestfulClient::getInstance();
-			client.Do(&config, &result);
+			client.Do(&config, &result, NULL);
 			if (result.ResponseOK()) {
 				//解析返回字符串
 				Json::Reader reader;
@@ -420,7 +420,7 @@ public:
 
 				RestfulClient client = RestfulClient::getInstance();
 				config.PreDo();
-				client.Do(&config, &result);
+				client.Do(&config, &result, NULL);
 				if (result.ResponseOK()) {
 					struct CommResponse
 					{