/******************************************************************************* * File Name : HTTPClient.h * Description : * Created on : 2020��7��1�� * Author : �ż� *******************************************************************************/ #ifndef _HTTP_CLIENT_H_ #define _HTTP_CLIENT_H_ /******************************************************************************* * Include Files * *******************************************************************************/ #include "HIDO_TypeDef.h" #include "HIDO_VLQueue.h" #include "HIDO_ArraryQueue.h" /******************************************************************************* * Macro * *******************************************************************************/ /******************************************************************************* * Type Definition * *******************************************************************************/ typedef struct { HIDO_UINT32 m_u32RangeBegin; HIDO_UINT32 m_u32RangeEnd; HIDO_CHAR m_acIfRange[64]; } ST_HTTPGetFileOpt; typedef struct { HIDO_UINT32 m_u32RangeBegin; HIDO_UINT32 m_u32RangeEnd; HIDO_UINT32 m_u32RangeTotal; HIDO_CHAR m_acETag[64]; } ST_HTTPGetFileResponse; typedef HIDO_INT32 (*FN_HTTPResponseCallback)(HIDO_UINT32 _u32RespCode, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len, HIDO_VOID *_pArg); typedef HIDO_INT32 (*FN_HTTPGetFileCallback)(HIDO_UINT32 _u32RespCode, ST_HTTPGetFileResponse *_pstResponse, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len, HIDO_VOID *_pArg); typedef HIDO_INT32 (*FN_HTTPPostDataCallback)(HIDO_UINT32 _u32Offset, HIDO_VOID *_pBuff, HIDO_UINT32 _u32BuffSize, HIDO_UINT32 *_pu32Len, HIDO_VOID *_pArg); /******************************************************************************* * Global Function * *******************************************************************************/ /******************************************************************************* * Function Name : HTTPClient_Post * Description : * Input : * Output : * Return : * Author : �ż� * Modified Date: : 2020��7��1�� *******************************************************************************/ HIDO_INT32 HTTPClient_Post(HIDO_CHAR *_pcUrl, HIDO_CHAR *_pcBody, HIDO_UINT32 _u32BodyLen, FN_HTTPResponseCallback _fnResponseCallback, HIDO_VOID *_pArg); /******************************************************************************* * Function Name : HTTPClientRequestFile * Description : * Input : * Output : * Return : * Author : �ż� * Modified Date: : 2020��7��1�� *******************************************************************************/ HIDO_INT32 HTTPClient_Get(HIDO_CHAR *_pcUrl, FN_HTTPResponseCallback _fnResponseCallback, HIDO_VOID *_pArg); /******************************************************************************* * Function Name : HTTPClient_GetFile * Description : * Input : * Output : * Return : * Author : �ż� * Modified Date: : 2020��7��1�� *******************************************************************************/ HIDO_INT32 HTTPClient_GetFile(HIDO_CHAR *_pcUrl, FN_HTTPGetFileCallback _fnGetFileCallback, ST_HTTPGetFileOpt *_pstOpt, HIDO_VOID *_pArg); /******************************************************************************* * Function Name : HTTPClient_GetState * Description : 获取HTTPClient当前状态 * Return : 0=IDLE, 1=CONNECTING, 2=CONNECTED *******************************************************************************/ HIDO_INT32 HTTPClient_GetState(HIDO_VOID); /******************************************************************************* * Function Name : HTTPClient_Reset * Description : 强制重置HTTPClient状态 *******************************************************************************/ HIDO_VOID HTTPClient_Reset(HIDO_VOID); /******************************************************************************* * Function Name : HTTPClient_PostFile * Description : HTTP �ϴ��ļ� * Input : _pcUrl HTTP·�� * : _pcFileName �ļ����� * : _fnResponseCallback HTTP��Ӧ�ص����� * : _pArg ���� * Output : Mone * Return : HIDO_OK �ɹ�,HIDO_ERR ʧ�� * Author : �ż� * Modified Date: : 2021��5��3�� *******************************************************************************/ HIDO_INT32 HTTPClient_PostFile(HIDO_CHAR *_pcUrl, FN_HTTPPostDataCallback _fnPostDataCallback, FN_HTTPResponseCallback _fnResponseCallback, HIDO_VOID *_pArg); /******************************************************************************* * Function Name : HTTPClient_Get * Description : * Input : * Output : * Return : * Author : �ż� * Modified Date: : 2020��7��1�� *******************************************************************************/ HIDO_INT32 HTTPClient_Poll(HIDO_VOID); /******************************************************************************* * Function Name : HTTPClientRequestFile * Description : * Input : * Output : * Return : * Author : �ż� * Modified Date: : 2020��7��1�� *******************************************************************************/ HIDO_INT32 HTTPClient_Init(HIDO_VOID); #endif /* _HTTP_CLIENT_H_ */