|
@@ -0,0 +1,79 @@
|
|
|
+#ifndef HIK_HTTPUTIL_H
|
|
|
+#define HIK_HTTPUTIL_H
|
|
|
+
|
|
|
+#if (defined(WIN32) || defined(WIN64))
|
|
|
+ #ifdef HTTPUTIL_EXPORTS
|
|
|
+ #define HTTPUTIL_API extern "C" _declspec(dllexport)
|
|
|
+ #else
|
|
|
+ #define HTTPUTIL_API extern "C" _declspec(dllimport)
|
|
|
+ #endif
|
|
|
+#else // LINUX
|
|
|
+ #define HTTPUTIL_API extern "C"
|
|
|
+#endif
|
|
|
+
|
|
|
+namespace httpUtil
|
|
|
+{
|
|
|
+ // ״̬Â붨Òå:
|
|
|
+ // 0 ±íʾ³É¹¦
|
|
|
+ // 10000~20000 ±íʾ¾ßÌåµÄ´íÎóÂë.
|
|
|
+ // СÓÚ10000´óÓÚ0 ±íʾHTTP״̬Â루Èç404£©£¬HTTP״̬ÂëÇë×ÔÐвéÔÄHTTP״̬Â붨Òå
|
|
|
+ const int HTTPUTIL_ERR_SUCCESS = 0; // ³É¹¦
|
|
|
+ const int HTTPUTIL_ERR_BASE = 10000; // ´íÎóÂë»ù×¼
|
|
|
+ const int HTTPUTIL_ERR_PARAM = (HTTPUTIL_ERR_BASE + 1); // ²ÎÊý´íÎó£¬Èç´«Èë¿ÕÖ¸Õë¡¢³¬Ê±Ê±¼ä²»¶Ô
|
|
|
+ const int HTTPUTIL_ERR_ALLOC_SESSION = (HTTPUTIL_ERR_BASE + 2); // HTTPÇëÇó·ÖÅäsessionʧ°Ü
|
|
|
+ const int HTTPUTIL_ERR_SET_HEADER_FIELD = (HTTPUTIL_ERR_BASE + 3); // Í·ÓòÉèÖÃʧ°Ü
|
|
|
+ const int HTTPUTIL_ERR_SEND_REQUEST = (HTTPUTIL_ERR_BASE + 4); // HTTPÇëÇóʧ°Ü
|
|
|
+ const int HTTPUTIL_ERR_ALLOC_MEM = (HTTPUTIL_ERR_BASE + 5); // ·ÖÅäÄÚ´æ´íÎó
|
|
|
+ const int HTTPUTIL_ERR_GET_REDIRECT_URL = (HTTPUTIL_ERR_BASE + 6); // »ñÈ¡ÖØ¶¨ÏòUrlʧ°Ü
|
|
|
+ const int HTTPUTIL_ERR_OTHER = (HTTPUTIL_ERR_BASE + 10000); // ÆäËü´íÎó
|
|
|
+
|
|
|
+ // HTTP POST
|
|
|
+ // url: url
|
|
|
+ // body: body
|
|
|
+ // appkey: APIÍø¹ØÌṩµÄAPPKey
|
|
|
+ // secret: APIÍø¹ØÌṩµÄAPPSecret
|
|
|
+ // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
|
|
|
+ // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
|
|
|
+ // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
|
|
|
+ HTTPUTIL_API char* HTTPUTIL_Post(const char* url, const char* body, const char* appkey, const char* secret, int timeout, int* dataLen);
|
|
|
+
|
|
|
+ // HTTP GET
|
|
|
+ // url: url
|
|
|
+ // appkey: APIÍø¹ØÌṩµÄAPPKey
|
|
|
+ // secret: APIÍø¹ØÌṩµÄAPPSecret
|
|
|
+ // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
|
|
|
+ // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
|
|
|
+ // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
|
|
|
+ HTTPUTIL_API char* HTTPUTIL_Get(const char* url, const char* appkey, const char* secret, int timeout, int* dataLen);
|
|
|
+
|
|
|
+ // ÊÍ·ÅÄÚ´æ
|
|
|
+ // buffer: pHTTPUTIL_GetºÍHTTPUTIL_Post·µ»ØµÄ·Ç¿ÕÖ¸Õë
|
|
|
+ HTTPUTIL_API void HTTPUTIL_Free(char* buffer);
|
|
|
+
|
|
|
+ // »ñȡ״̬Â룬±ØÐëÔÚµ÷HTTPUTIL_Post»òHTTPUTIL_GetËùÔÚÏß³ÌÖе÷´Ë½Ó¿Ú
|
|
|
+ // return: ״̬Âë, Ïê¼ûHTTPUTIL_ERR_*»ò×ÔÐвéÔÄHTTP״̬Âë
|
|
|
+ HTTPUTIL_API int HTTPUTIL_GetLastStatus();
|
|
|
+
|
|
|
+ // HTTP POST
|
|
|
+ // url: url
|
|
|
+ // body: body
|
|
|
+ // appkey: APIÍø¹ØÌṩµÄAPPKey
|
|
|
+ // secret: APIÍø¹ØÌṩµÄAPPSecret
|
|
|
+ // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
|
|
|
+ // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
|
|
|
+ // language: ÓïÑÔ»·¾³£¬¿ÉÑ¡zh_CN£¨ÖÐÎÄ£©en_US£¨Ó¢ÎÄ£©
|
|
|
+ // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
|
|
|
+ HTTPUTIL_API char* HTTPUTIL_PostWithLanguage(const char* url, const char* body, const char* appkey, const char* secret, int timeout, int* dataLen, const char* language = "zh_CN");
|
|
|
+
|
|
|
+
|
|
|
+ // HTTP GET
|
|
|
+ // url: url
|
|
|
+ // appkey: APIÍø¹ØÌṩµÄAPPKey
|
|
|
+ // secret: APIÍø¹ØÌṩµÄAPPSecret
|
|
|
+ // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
|
|
|
+ // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
|
|
|
+ // language: ÓïÑÔ»·¾³£¬¿ÉÑ¡zh_CN£¨ÖÐÎÄ£©en_US£¨Ó¢ÎÄ£©
|
|
|
+ // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
|
|
|
+ HTTPUTIL_API char* HTTPUTIL_GetWithLanguage(const char* url, const char* appkey, const char* secret, int timeout, int* dataLen, const char* language = "zh_CN");
|
|
|
+}
|
|
|
+#endif
|