诸暨麻将添加redis
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

132 строки
5.0 KiB

  1. //////////////////////////////////// HttpClient.h
  2. #ifndef HTTPCLIENT_H
  3. #define HTTPCLIENT_H
  4. #include "StdAfx.h"
  5. #include <afxinet.h>
  6. #include <unordered_map>
  7. #include <process.h>
  8. #include <string>
  9. #define IE_AGENT _T("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)")
  10. // 操作成功
  11. #define SUCCESS 0
  12. // 操作失败
  13. #define FAILURE 1
  14. #define OUTTIME 2
  15. class CAttemperEngineSink;
  16. class CHttpClient
  17. {
  18. public:
  19. CHttpClient(LPCTSTR strAgent = IE_AGENT);
  20. virtual ~CHttpClient(void);
  21. int HttpGet(LPCTSTR strUrl, LPCTSTR strPostData, CString &strResponse, CString &Err);
  22. int HttpPost(LPCTSTR strUrl, LPCTSTR strPostData, CString &strResponse, CString &Err);
  23. //添加
  24. static void AddLog(DWORD dwSocketID, GETDUILIEBASE LogText);
  25. //获取
  26. static std::unordered_map<DWORD, GETDUILIELIST> GetLog();
  27. //运行
  28. static unsigned __stdcall Runs(void* pParam);
  29. //启动
  30. static bool start(CAttemperEngineSink* pSink);
  31. //结束
  32. static bool end();
  33. //获取数量
  34. static DWORD GetCount();
  35. // 进行Url编码 UTF-8
  36. static CString UrlEncode(CString strUnicode);
  37. private:
  38. int ExecuteRequest(LPCTSTR strMethod, LPCTSTR strUrl, LPCTSTR strPostData, CString &strResponse,CString &Err);
  39. void Clear();
  40. static HANDLE m_hThread; // 线程句柄
  41. static unsigned m_uiThreadID; // 线程id
  42. static bool m_bRun; // 当前线程是否结束
  43. static HANDLE g_Event; // 触发事件句柄
  44. static CAttemperEngineSink* pCAttemperEngineSink; //调度钩子
  45. static void* curl;
  46. //请求信息
  47. static std::unordered_map<DWORD, GETDUILIELIST> GetData; //请求信息
  48. //锁
  49. static CCriticalSection m_CriticalSection; //线程锁
  50. private:
  51. CInternetSession *m_pSession;
  52. CHttpConnection *m_pConnection;
  53. CHttpFile *m_pFile;
  54. public:
  55. // 获取订单编号
  56. static CString OnGetDingDan(GETDUILIE Data, CString csUnionID, DWORD dwSocketID);
  57. // 获取订单列表
  58. static CString OnGetDingDanList(CString csUnionID, DWORD dwSocketID);
  59. // 绑定代理
  60. static CString OnGetBangDing(CString csUnionID, DWORD dwSocketID, DWORD dDaiLi, DWORD dUserID, CString Name, CString Head);
  61. // 分享通知
  62. static CString OnGetShare(CString csUnionID, DWORD UserID, DWORD dwXinYong);
  63. //玩家自主解绑代理
  64. static CString OnUntieAgent(CString csUnionID, DWORD dwUserID, DWORD dwAccurency, DWORD dwDaiLiID, DWORD dwSocketID);
  65. //扫码绑定
  66. static CString OnGetDaiLiID(CString csUnionID, DWORD dwUserID, DWORD dwSocketID, CString csUserName);
  67. //获取验证码
  68. static bool OnGetIphoneNumber(CString csIphoneNum, DWORD dwUserID, DWORD dwSocketID);
  69. //校验验证码、
  70. static CString OnVerfIphoneNumberCode(CString csIphoneNum,/*DWORD dVerfCode,*/CString csVerfCode, DWORD dwSocketID);
  71. static CString OnExeInfo(CString csIphoneNum,CString csInfo, DWORD dwSocketID);
  72. //抽奖记录入库
  73. static CString OnLotteryResult(DWORD dwUserID, WORD wLotteryID, WORD wLotteryType, CString csIphoneNum, DWORD dwRecordID, DWORD dwSocketID);
  74. static CString OnLotteryResultEx(DWORD dwUserID, CString csAddressee, CString csAddress, CString csIphoneNum, DWORD dwRecordID, DWORD dwSocketID);
  75. //分享闲聊,俱乐部,桌子号,玩家信息
  76. static CString OnFenXiangXianLiao(TCHAR WanFTitle[33], DBR_GR_ClubRecordXianLiao FenXiangRecord);
  77. public:
  78. /**
  79. * @brief HTTP POST请求
  80. * @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com
  81. * @param strPost 输入参数,使用如下格式para1=val1¶2=val2&…
  82. * @param strResponse 输出参数,返回的内容
  83. * @return 返回是否Post成功
  84. */
  85. int Post(const std::string & strUrl, const std::string & strPost, std::string & strResponse);
  86. /**
  87. * @brief HTTP GET请求
  88. * @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com
  89. * @param strResponse 输出参数,返回的内容
  90. * @return 返回是否Post成功
  91. */
  92. int Get(const std::string & strUrl, std::string & strResponse);
  93. /**
  94. * @brief HTTPS POST请求,无证书版本
  95. * @param strUrl 输入参数,请求的Url地址,如:https://www.alipay.com
  96. * @param strPost 输入参数,使用如下格式para1=val1¶2=val2&…
  97. * @param strResponse 输出参数,返回的内容
  98. * @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性.
  99. * @return 返回是否Post成功
  100. */
  101. int Posts(const std::string & strUrl, const std::string & strPost, std::string & strResponse, const char * pCaPath = NULL);
  102. /**
  103. * @brief HTTPS GET请求,无证书版本
  104. * @param strUrl 输入参数,请求的Url地址,如:https://www.alipay.com
  105. * @param strResponse 输出参数,返回的内容
  106. * @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性.
  107. * @return 返回是否Post成功
  108. */
  109. int Gets(const std::string & strUrl, std::string & strResponse, const char * pCaPath = NULL);
  110. public:
  111. void SetDebug(bool bDebug);
  112. private:
  113. bool m_bDebug;
  114. };
  115. #endif // HTTPCLIENT_H