ClientDlg.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // ClientDlg.h : header file
  2. //
  3. #pragma once
  4. #include "afxwin.h"
  5. #include "../../../Src/HttpClient.h"
  6. #include "../../Global/helper.h"
  7. // CClientDlg dialog
  8. class CClientDlg : public CDialogEx, public CHttpClientListener
  9. {
  10. // Construction
  11. public:
  12. CClientDlg(CWnd* pParent = NULL); // standard constructor
  13. // Dialog Data
  14. enum { IDD = IDD_CLIENT_DIALOG };
  15. protected:
  16. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  17. virtual BOOL PreTranslateMessage(MSG* pMsg);
  18. // Implementation
  19. protected:
  20. HICON m_hIcon;
  21. // Generated message map functions
  22. virtual BOOL OnInitDialog();
  23. afx_msg void OnPaint();
  24. afx_msg HCURSOR OnQueryDragIcon();
  25. afx_msg void OnBnClickedHeaderAdd();
  26. afx_msg void OnBnClickedSend();
  27. afx_msg void OnBnClickedStart();
  28. afx_msg void OnBnClickedStop();
  29. afx_msg LRESULT OnUserInfoMsg(WPARAM wp, LPARAM lp);
  30. afx_msg void OnCbnSelchangeMethod();
  31. afx_msg int OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex);
  32. DECLARE_MESSAGE_MAP()
  33. public:
  34. void SetAppState(EnAppState state);
  35. private:
  36. virtual EnHandleResult OnSend(IClient* pClient, const BYTE* pData, int iLength);
  37. virtual EnHandleResult OnReceive(IClient* pClient, const BYTE* pData, int iLength);
  38. virtual EnHandleResult OnClose(IClient* pClient, EnSocketOperation enOperation, int iErrorCode);
  39. virtual EnHandleResult OnConnect(IClient* pClient);
  40. virtual EnHandleResult OnHandShake(IClient* pClient);
  41. virtual EnHttpParseResult OnMessageBegin(IHttp* pHttp);
  42. virtual EnHttpParseResult OnStatusLine(IHttp* pHttp, USHORT usStatusCode, LPCSTR lpszDesc);
  43. virtual EnHttpParseResult OnHeader(IHttp* pHttp, LPCSTR lpszName, LPCSTR lpszValue);
  44. virtual EnHttpParseResult OnHeadersComplete(IHttp* pHttp);
  45. virtual EnHttpParseResult OnBody(IHttp* pHttp, const BYTE* pData, int iLength);
  46. virtual EnHttpParseResult OnChunkHeader(IHttp* pHttp, int iLength);
  47. virtual EnHttpParseResult OnChunkComplete(IHttp* pHttp);
  48. virtual EnHttpParseResult OnMessageComplete(IHttp* pHttp);
  49. virtual EnHttpParseResult OnUpgrade(IHttp* pHttp, EnHttpUpgradeType enUpgradeType);
  50. virtual EnHttpParseResult OnParseError(IHttp* pHttp, int iErrorCode, LPCSTR lpszErrorDesc);
  51. static void CheckSetCookie(IHttpClient* pHttpClient);
  52. static CStringA GetHeaderSummary(IHttpClient* pHttpClient, LPCSTR lpszSep = " ", int iSepCount = 0, BOOL bWithContentLength = TRUE);
  53. private:
  54. CButton m_Send;
  55. CListBox m_Info;
  56. CEdit m_Address;
  57. CEdit m_Port;
  58. CButton m_Async;
  59. CButton m_Start;
  60. CButton m_Stop;
  61. CComboBox m_Method;
  62. CComboBox m_Schema;
  63. CEdit m_Path;
  64. CEdit m_HeaderName;
  65. CEdit m_HeaderValue;
  66. CButton m_HeaderAdd;
  67. CListBox m_Headers;
  68. CEdit m_Body;
  69. BOOL m_bAsyncConn;
  70. EnAppState m_enState;
  71. unique_ptr<IHttpClient> m_pClient;
  72. };