/******************************************************************************* * 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_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_ */