From b3b6d5c5f98a71cf5b148a5a533bfb8a13013236 Mon Sep 17 00:00:00 2001 From: kradchen Date: Thu, 16 Nov 2023 11:43:31 +0800 Subject: [PATCH] Update Req lib to lastest version --- src/recon/ReconClient.cpp | 53 +++++++++----------------- thirdParty/Req/pub/include/Request.h | 5 +-- thirdParty/Req/pub/include/Response.h | 3 -- thirdParty/Req/pub/lib/libReq.so | Bin 20256 -> 33120 bytes 4 files changed, 20 insertions(+), 41 deletions(-) diff --git a/src/recon/ReconClient.cpp b/src/recon/ReconClient.cpp index da8f8b5..5a974d1 100644 --- a/src/recon/ReconClient.cpp +++ b/src/recon/ReconClient.cpp @@ -36,13 +36,11 @@ namespace Recon { std::string content; content.append("1"); auto resp = mRequest.post(mHost+CHECK_URL,content,mHeaders); - if (resp->httpCode() == 200){ - delete resp; + if (resp.httpCode() == 200){ return RequestResult::Success(); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } @@ -63,13 +61,11 @@ namespace Recon { content.append(str); free(str); auto resp = mRequest.post(mHost+CREATE_URL,content,mHeaders); - if (resp->httpCode() == 201){ - delete resp; + if (resp.httpCode() == 201){ return RequestResult::Success(); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } @@ -84,9 +80,8 @@ namespace Recon { content.append(str); free(str); auto resp = mRequest.post(mHost+QUERY_SCAN_URL,content,mHeaders); - if (resp->httpCode() == 200){ - cJSON * scans = cJSON_Parse(resp->getContent().data()); - delete resp; + if (resp.httpCode() == 200){ + cJSON * scans = cJSON_Parse(resp.getContent().data()); int size = cJSON_GetArraySize(scans); if (size == 1){ cJSON * scaninf = cJSON_GetArrayItem(scans, 0); @@ -101,8 +96,7 @@ namespace Recon { return RequestResult::Fail(mErrorMessage); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } @@ -117,18 +111,15 @@ namespace Recon { content.append(str); free(str); auto resp = mRequest.post(mHost+QUERY_RECON_URL,content,mHeaders); - if (resp->httpCode() == 204){ - delete resp; + if (resp.httpCode() == 204){ return RequestResult::Success(); } - else if (resp->httpCode() == 200){ - aReconID = resp->getContent(); - delete resp; + else if (resp.httpCode() == 200){ + aReconID = resp.getContent(); return RequestResult::Success(aReconID); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } @@ -144,9 +135,8 @@ namespace Recon { content.append(str); free(str); auto resp = mRequest.post(mHost+QUERY_RECON_URL,content,mHeaders); - if (resp->httpCode() == 200){ - cJSON * task = cJSON_Parse(resp->getContent().data()); - delete resp; + if (resp.httpCode() == 200){ + cJSON * task = cJSON_Parse(resp.getContent().data()); aTask.ReconID = cJSON_GetObjectItem(task, "ReconID")->valuestring; aTask.ScanID= cJSON_GetObjectItem(task, "ScanID")->valuestring; aTask.Start = cJSON_GetObjectItem(task, "Start")->valueint!=0; @@ -155,8 +145,7 @@ namespace Recon { return RequestResult::Success(); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } @@ -166,14 +155,12 @@ namespace Recon { std::string content; content.append("1"); auto resp = mRequest.post(mHost+QUERY_VERSION_URL,content,mHeaders); - if (resp->httpCode() == 200){ - std::string version = resp->getContent(); - delete resp; + if (resp.httpCode() == 200){ + std::string version = resp.getContent(); return RequestResult::Success(version); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } @@ -199,13 +186,11 @@ namespace Recon { content.append(str); free(str); auto resp = mRequest.post(mHost+SET_PACS_URL,content,mHeaders); - if (resp->httpCode() == 200){ - delete resp; + if (resp.httpCode() == 200){ return RequestResult::Success(); } else{ - mErrorMessage = resp->getContent(); - delete resp; + mErrorMessage = resp.getContent(); return RequestResult::Fail(mErrorMessage); } } diff --git a/thirdParty/Req/pub/include/Request.h b/thirdParty/Req/pub/include/Request.h index de5c5dd..136ea34 100644 --- a/thirdParty/Req/pub/include/Request.h +++ b/thirdParty/Req/pub/include/Request.h @@ -15,10 +15,9 @@ namespace Req { Request &operator=(Request &&) = delete; Request &operator=(const Request &) = delete; ~Request(); - bool isValid(); void setClientCertificate(const std::string &cerPath, const std::string &keyPath); void setVerbose(bool verbose); - Response* post(const std::string& url, const std::string &body = std::string(), + Response post(const std::string& url, const std::string &body = std::string(), const std::unordered_map& headers = std::unordered_map()); @@ -28,8 +27,6 @@ namespace Req { std::string mCert; std::string mKey; bool mVerbose; - bool mValid; - }; } #endif // __REQUEST_H__ \ No newline at end of file diff --git a/thirdParty/Req/pub/include/Response.h b/thirdParty/Req/pub/include/Response.h index 1a9c906..b9ccbe8 100644 --- a/thirdParty/Req/pub/include/Response.h +++ b/thirdParty/Req/pub/include/Response.h @@ -7,7 +7,6 @@ namespace Req { { public: Response(); - static Response* ErrorResponse(const std::string & content); Response(Response &&) = default; Response(const Response &) = default; Response &operator=(Response &&) = delete; @@ -16,11 +15,9 @@ namespace Req { long httpCode(); void setHttpCode(long code); std::string& getContent(); - bool isResponsed(); private: long mHttpCode = 404; std::string mContent; - bool mResponsed; }; }; #endif // __RESPONSE_H__ \ No newline at end of file diff --git a/thirdParty/Req/pub/lib/libReq.so b/thirdParty/Req/pub/lib/libReq.so index b6cffa88073f61412ee697632d917fd46ae8776c..e877bcec335cef112ee638432c9cdac8c9eee9ab 100644 GIT binary patch literal 33120 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 Ym2kV6@qA=b$>~B%9P3Y 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