HttpUtil.h 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef HIK_HTTPUTIL_H
  2. #define HIK_HTTPUTIL_H
  3. #if (defined(WIN32) || defined(WIN64))
  4. #ifdef HTTPUTIL_EXPORTS
  5. #define HTTPUTIL_API extern "C" _declspec(dllexport)
  6. #else
  7. #define HTTPUTIL_API extern "C" _declspec(dllimport)
  8. #endif
  9. #else // LINUX
  10. #define HTTPUTIL_API extern "C"
  11. #endif
  12. namespace httpUtil
  13. {
  14. // ״̬Â붨Òå:
  15. // 0 ±íʾ³É¹¦
  16. // 10000~20000 ±íʾ¾ßÌåµÄ´íÎóÂë.
  17. // СÓÚ10000´óÓÚ0 ±íʾHTTP״̬Â루Èç404£©£¬HTTP״̬ÂëÇë×ÔÐвéÔÄHTTP״̬Â붨Òå
  18. const int HTTPUTIL_ERR_SUCCESS = 0; // ³É¹¦
  19. const int HTTPUTIL_ERR_BASE = 10000; // ´íÎóÂë»ù×¼
  20. const int HTTPUTIL_ERR_PARAM = (HTTPUTIL_ERR_BASE + 1); // ²ÎÊý´íÎó£¬Èç´«Èë¿ÕÖ¸Õë¡¢³¬Ê±Ê±¼ä²»¶Ô
  21. const int HTTPUTIL_ERR_ALLOC_SESSION = (HTTPUTIL_ERR_BASE + 2); // HTTPÇëÇó·ÖÅäsessionʧ°Ü
  22. const int HTTPUTIL_ERR_SET_HEADER_FIELD = (HTTPUTIL_ERR_BASE + 3); // Í·ÓòÉèÖÃʧ°Ü
  23. const int HTTPUTIL_ERR_SEND_REQUEST = (HTTPUTIL_ERR_BASE + 4); // HTTPÇëÇóʧ°Ü
  24. const int HTTPUTIL_ERR_ALLOC_MEM = (HTTPUTIL_ERR_BASE + 5); // ·ÖÅäÄÚ´æ´íÎó
  25. const int HTTPUTIL_ERR_GET_REDIRECT_URL = (HTTPUTIL_ERR_BASE + 6); // »ñÈ¡ÖØ¶¨ÏòUrlʧ°Ü
  26. const int HTTPUTIL_ERR_OTHER = (HTTPUTIL_ERR_BASE + 10000); // ÆäËü´íÎó
  27. // HTTP POST
  28. // url: url
  29. // body: body
  30. // appkey: APIÍø¹ØÌṩµÄAPPKey
  31. // secret: APIÍø¹ØÌṩµÄAPPSecret
  32. // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
  33. // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
  34. // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
  35. HTTPUTIL_API char* HTTPUTIL_Post(const char* url, const char* body, const char* appkey, const char* secret, int timeout, int* dataLen);
  36. // HTTP GET
  37. // url: url
  38. // appkey: APIÍø¹ØÌṩµÄAPPKey
  39. // secret: APIÍø¹ØÌṩµÄAPPSecret
  40. // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
  41. // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
  42. // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
  43. HTTPUTIL_API char* HTTPUTIL_Get(const char* url, const char* appkey, const char* secret, int timeout, int* dataLen);
  44. // ÊÍ·ÅÄÚ´æ
  45. // buffer: pHTTPUTIL_GetºÍHTTPUTIL_Post·µ»ØµÄ·Ç¿ÕÖ¸Õë
  46. HTTPUTIL_API void HTTPUTIL_Free(char* buffer);
  47. // »ñȡ״̬Â룬±ØÐëÔÚµ÷HTTPUTIL_Post»òHTTPUTIL_GetËùÔÚÏß³ÌÖе÷´Ë½Ó¿Ú
  48. // return: ״̬Âë, Ïê¼ûHTTPUTIL_ERR_*»ò×ÔÐвéÔÄHTTP״̬Âë
  49. HTTPUTIL_API int HTTPUTIL_GetLastStatus();
  50. // HTTP POST
  51. // url: url
  52. // body: body
  53. // appkey: APIÍø¹ØÌṩµÄAPPKey
  54. // secret: APIÍø¹ØÌṩµÄAPPSecret
  55. // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
  56. // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
  57. // language: ÓïÑÔ»·¾³£¬¿ÉÑ¡zh_CN£¨ÖÐÎÄ£©en_US£¨Ó¢ÎÄ£©
  58. // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
  59. 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");
  60. // HTTP GET
  61. // url: url
  62. // appkey: APIÍø¹ØÌṩµÄAPPKey
  63. // secret: APIÍø¹ØÌṩµÄAPPSecret
  64. // timeout: Ãë¼¶³¬Ê±Ê±¼ä£¨ÄÚ²¿·Ö±ðʹÓô˳¬Ê±Ê±¼äÉèÖý¨Á¢Á¬½Ó¡¢ÇëÇó·¢ËÍ¡¢µÈ´ý»Ø¸´³¬Ê±Ê±¼ä£©
  65. // dataLen: ÏìÓ¦Êý¾Ý³¤¶È£¬Èç¹ûÈ·¶¨·µ»ØµÄÄÚÈÝÊÇ×Ö·û´®£¬¿ÉÒÔÖ¸¶¨NULL
  66. // language: ÓïÑÔ»·¾³£¬¿ÉÑ¡zh_CN£¨ÖÐÎÄ£©en_US£¨Ó¢ÎÄ£©
  67. // return: HTTPÇëÇóÏìÓ¦£¬Èç¹ûÊǶþ½øÖÆ£¬Çë½áºÏdataLen»ñÈ¡Êý¾Ý¡£Ê§°Ü·µ»ØNULL£¬¿ÉʹÓÃHTTPUTIL_GetLastStatus»ñȡ״̬Âë¡£³É¹¦ÐèʹÓÃHTTPUTIL_FreeÊÍ·ÅÄÚ´æ
  68. HTTPUTIL_API char* HTTPUTIL_GetWithLanguage(const char* url, const char* appkey, const char* secret, int timeout, int* dataLen, const char* language = "zh_CN");
  69. }
  70. #endif