#pragma once #include #include #include #include #include //webApi链接数据库的类型根据web接口改变 #define WEBAPPTYPE "TZCJ" //webApi接口返回成功标记 #define RERUNSUCCESS 0 //不要超过4M, 4M是栈空间极限 const int LHHTTPAPI_BUFFER_SIZE = 100*1024*1024; class lhhttpapi : public QObject { Q_OBJECT public: typedef int (*FunDBInit)(const char* lpUrl); typedef int (*FunDBLogin)(const char *plocalip,const char *pSerid, const char* CType, char *pszUserToken, int nSize); typedef int (*FunDBGetServerList)(char *pszList, int nSize); typedef int (*FunDBGetChannelList)(const char* pSerid,char *pszList, int nSize); typedef int (*FunDBDoInterface)(const char* pSerid,const char* CType,const char* strtoken,int nOperatorType, const char * strParamXml, char *strRetXml, int nSize); typedef int64_t (*FunDoGetHttpFileSize)(const char* pHttAddr); typedef int64_t (*FunDoGetHttpFileContent)(const char* lpHttpAddr, char *pszContent, int nSize); typedef int (*FunDoUploadFtpFile)(const char* pszLocalFilePath, const char* pszFtpFilePath); typedef int (*FunDoUploadFtpFileContent)(const char * szFileContent, int nSize, const char* strFtpFilePath); typedef int (*FunDoCurlDeleteFtpFile)(const char* user, const char* pwd, const char* pszFtpFile); typedef int (*FunDoCurlUploadFtpFile)(const char* user, const char* pwd, const char* pszLocalFilePath, const char* pszFtpFile); typedef int (*FunDoCurlUploadFtpFileContent)(const char* user, const char* pwd, const char* pszFileContent, int nSize, const char* pszFtpFile); // typedef int (*FunUnInit)(); typedef int (*FunDoGetLastError)(char *pError, int nLen, int *nErrorCode); public: explicit lhhttpapi(QObject *parent = nullptr); ~lhhttpapi(); public: QLibrary *m_pQLib; FunDBInit fnDBInit; FunDBLogin fnDBLogin; FunDBGetServerList fnDBGettServerList; FunDBGetChannelList fnDBGetChannelList; FunDBDoInterface fnDBDoInterface; FunDoGetHttpFileSize fnDoGetHttpFileSize; FunDoGetHttpFileContent fnDoGetHttpFileContent; FunDoUploadFtpFile fnDoUploadFtpFile; FunDoUploadFtpFileContent fnDoUploadFtpFileContent; FunDoCurlDeleteFtpFile fnDoCurlDeleteFtpFile; FunDoCurlUploadFtpFile fnDoCurlUploadFtpFile; FunDoCurlUploadFtpFileContent fnDoCurlUploadFtpFileContent; // FunUnInit fnUnInit; FunDoGetLastError fnGetLastError; public: bool Load(QString file); bool UnLoad(); int DBLogin(const QString& pLocalip,const QString &pSerid,const QString &appType, QString &pszUserToken); int DoGetToken(QString &szToken); int DBGetServerList(char *pszList, int nSize); int DBGetChannelList(const char* pSerid,char *pszList, int nSize); int DBDoInterface(const QString &strToken, int nOperatorType, const QString &strParamXml, QString &strRetXml); int DBInit (const char *lpUrl); int DoGetLastError(char *pError, int nLen, int *nErrorCode); QString DoGetLastError(int *nErrorCode); int64_t DoGetHttpFileSize(const QString &url); int64_t DoGetHttpFileContent(const QString &url, char *pszContent, int nSize); // int64_t DoGetHttpPNGFile(const QString &url, QPixmap &outPixmap); bool DoUploadFtpFile(const QString &localFilePath, const QString &ftpFilePath); bool DoUploadFtpFileContent(const char * szFileContent, int nSize, const QString &ftpFilePath); bool DoCurlDeleteFtpFile(const QString &targetFilePath); bool DoCurlDeleteFtpFile(const QString &user, const QString &pwd, const QString &targetFilePath); bool DoCurlUploadFtpFile(const QString &localFilePath, const QString &destFilePath); bool DoCurlUploadFtpFile(const QString &user, const QString &pwd, const QString &localFilePath, const QString &destFilePath); bool DoCurlUploadFtpFileContent(const char * szFileContent, int nSize, const QString &destFilePath); bool DoCurlUploadFtpFileContent(const QString &user, const QString &pwd, const char * szFileContent, int nSize, const QString &destFilePath); private: QString m_Localip; // localip QString m_Serid; // 当前服务数据库id QString m_appType; // 设备类型 };