lhhttpapi.h 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #pragma once
  2. #include <QString>
  3. #include <QLibrary>
  4. #include <QDateTime>
  5. #include <QObject>
  6. #include <QtDebug>
  7. //webApi链接数据库的类型根据web接口改变
  8. #define WEBAPPTYPE "TZCJ"
  9. //webApi接口返回成功标记
  10. #define RERUNSUCCESS 0
  11. //不要超过4M, 4M是栈空间极限
  12. const int LHHTTPAPI_BUFFER_SIZE = 100*1024*1024;
  13. class lhhttpapi : public QObject
  14. {
  15. Q_OBJECT
  16. public:
  17. typedef int (*FunDBInit)(const char* lpUrl);
  18. typedef int (*FunDBLogin)(const char *plocalip,const char *pSerid, const char* CType, char *pszUserToken, int nSize);
  19. typedef int (*FunDBGetServerList)(char *pszList, int nSize);
  20. typedef int (*FunDBGetChannelList)(const char* pSerid,char *pszList, int nSize);
  21. typedef int (*FunDBDoInterface)(const char* pSerid,const char* CType,const char* strtoken,int nOperatorType, const char * strParamXml, char *strRetXml, int nSize);
  22. typedef int64_t (*FunDoGetHttpFileSize)(const char* pHttAddr);
  23. typedef int64_t (*FunDoGetHttpFileContent)(const char* lpHttpAddr, char *pszContent, int nSize);
  24. typedef int (*FunDoUploadFtpFile)(const char* pszLocalFilePath, const char* pszFtpFilePath);
  25. typedef int (*FunDoUploadFtpFileContent)(const char * szFileContent, int nSize, const char* strFtpFilePath);
  26. typedef int (*FunDoCurlDeleteFtpFile)(const char* user, const char* pwd, const char* pszFtpFile);
  27. typedef int (*FunDoCurlUploadFtpFile)(const char* user, const char* pwd, const char* pszLocalFilePath, const char* pszFtpFile);
  28. typedef int (*FunDoCurlUploadFtpFileContent)(const char* user, const char* pwd, const char* pszFileContent, int nSize, const char* pszFtpFile);
  29. // typedef int (*FunUnInit)();
  30. typedef int (*FunDoGetLastError)(char *pError, int nLen, int *nErrorCode);
  31. public:
  32. explicit lhhttpapi(QObject *parent = nullptr);
  33. ~lhhttpapi();
  34. public:
  35. QLibrary *m_pQLib;
  36. FunDBInit fnDBInit;
  37. FunDBLogin fnDBLogin;
  38. FunDBGetServerList fnDBGettServerList;
  39. FunDBGetChannelList fnDBGetChannelList;
  40. FunDBDoInterface fnDBDoInterface;
  41. FunDoGetHttpFileSize fnDoGetHttpFileSize;
  42. FunDoGetHttpFileContent fnDoGetHttpFileContent;
  43. FunDoUploadFtpFile fnDoUploadFtpFile;
  44. FunDoUploadFtpFileContent fnDoUploadFtpFileContent;
  45. FunDoCurlDeleteFtpFile fnDoCurlDeleteFtpFile;
  46. FunDoCurlUploadFtpFile fnDoCurlUploadFtpFile;
  47. FunDoCurlUploadFtpFileContent fnDoCurlUploadFtpFileContent;
  48. // FunUnInit fnUnInit;
  49. FunDoGetLastError fnGetLastError;
  50. public:
  51. bool Load(QString file);
  52. bool UnLoad();
  53. int DBLogin(const QString& pLocalip,const QString &pSerid,const QString &appType, QString &pszUserToken);
  54. int DoGetToken(QString &szToken);
  55. int DBGetServerList(char *pszList, int nSize);
  56. int DBGetChannelList(const char* pSerid,char *pszList, int nSize);
  57. int DBDoInterface(const QString &strToken, int nOperatorType, const QString &strParamXml, QString &strRetXml);
  58. int DBInit (const char *lpUrl);
  59. int DoGetLastError(char *pError, int nLen, int *nErrorCode);
  60. QString DoGetLastError(int *nErrorCode);
  61. int64_t DoGetHttpFileSize(const QString &url);
  62. int64_t DoGetHttpFileContent(const QString &url, char *pszContent, int nSize);
  63. // int64_t DoGetHttpPNGFile(const QString &url, QPixmap &outPixmap);
  64. bool DoUploadFtpFile(const QString &localFilePath, const QString &ftpFilePath);
  65. bool DoUploadFtpFileContent(const char * szFileContent, int nSize, const QString &ftpFilePath);
  66. bool DoCurlDeleteFtpFile(const QString &targetFilePath);
  67. bool DoCurlDeleteFtpFile(const QString &user, const QString &pwd, const QString &targetFilePath);
  68. bool DoCurlUploadFtpFile(const QString &localFilePath, const QString &destFilePath);
  69. bool DoCurlUploadFtpFile(const QString &user, const QString &pwd, const QString &localFilePath, const QString &destFilePath);
  70. bool DoCurlUploadFtpFileContent(const char * szFileContent, int nSize, const QString &destFilePath);
  71. bool DoCurlUploadFtpFileContent(const QString &user, const QString &pwd, const char * szFileContent, int nSize, const QString &destFilePath);
  72. private:
  73. QString m_Localip; // localip
  74. QString m_Serid; // 当前服务数据库id
  75. QString m_appType; // 设备类型
  76. };