#ifndef CHTTPINTERCEPTOR_H #define CHTTPINTERCEPTOR_H #include #include #include #include #include "CHttpClient.h" #include "httpDataDef.h" #include "json/json.h" class CHttpInterceptor { public: CHttpInterceptor(); ~CHttpInterceptor(); void init(QString sIp, QString sPort, bool bUseHttps = false); QString getHttpUrl() const; void post(CHttpRequestPackage requestPkg); void get(CHttpRequestPackage requestPkg); void getUrl(CHttpRequestPackage requestPkg); void put(CHttpRequestPackage requestPkg); void downLoad(CHttpRequestPackage requestPkg); virtual void requestProc(const CHttpRequestPackage requestPkg)=0; protected: void initHeads(const CHttpRequestPackage &requestPkg); bool doPost(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode); bool doGet(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode); bool doPut(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode); bool downLoadFile(std::string uri, std::string sFileName, int &nResCode); private: void threadProc(); std::thread m_thread; bool m_bIsRun; std::mutex m_mReqPkgMutex; std::list m_mReqPkgList; CHttpClient m_httpClient; QString m_sUrl = ""; QString m_wxUrl = ""; }; #endif // CHTTPINTERCEPTOR_H