recordinfo.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "recordinfo.h"
  2. #include "strutil.h"
  3. #include "Event.h"
  4. void HttpsLogCallBack(const char* logtxt) {
  5. //DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI("HttpsLogCallBack")("HttpsLogCallBack: %s.", logtxt);
  6. }
  7. int post_video_recordinfo_list(video_record_info_t* pinfo, int itimeout, bool bprintdbg)
  8. {
  9. int iret = -1;
  10. IHttpFunc* client = create_http(HttpsLogCallBack);
  11. RecordInfoHTTPReq req;
  12. req.m_timeOut = itimeout;
  13. if (bprintdbg) {
  14. req.m_printDbg = true;
  15. }
  16. const char* pData = pinfo->strServerURL.GetData();
  17. if (pData) {
  18. req.m_url = pData;
  19. }
  20. pData = pinfo->strAPI.GetData();
  21. if (pData) {
  22. req.m_url.append(pData);
  23. }
  24. Json::Value rootReq;
  25. pData = pinfo->strTerminalNo.GetData();
  26. if (pData) {
  27. rootReq["terminal_no"] = pData;
  28. }
  29. pData = pinfo->strAppVersion.GetData();
  30. if (pData) {
  31. rootReq["app_version"] = pData;
  32. }
  33. pData = pinfo->strRecordEndTime.GetData();
  34. if (pData) {
  35. rootReq["upload_time"] = pData;
  36. }
  37. pData = pinfo->strRecordID.GetData();
  38. if (pData) {
  39. rootReq["video_serial_id"] = pData;
  40. }
  41. rootReq["business_status"] = pinfo->iBusinessStatus;
  42. for (vector<record_item_t>::iterator it = pinfo->vRecordList.begin(); it < pinfo->vRecordList.end(); ++it) {
  43. Json::Value item;
  44. item["file_name"] = it->file_name;
  45. item["file_path"] = it->file_path;
  46. item["file_length"] = it->file_length;
  47. rootReq["file_list"].append(item);
  48. }
  49. Json::StyledWriter sw;
  50. req.m_reqContent = sw.write(rootReq);
  51. DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_reqContent is %s.", req.m_reqContent.c_str());
  52. //DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("begin http get request, timeout is %d, printdbg flag is %s.", req.m_timeOut, req.m_printDbg ? "true" : "false");
  53. RecordInfoHTTPRet ret;
  54. if (client->Post(req, ret)) {
  55. DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Post result is %s, returnCode:%s, code:%s, errorMsg:%s, message:%s.",
  56. ret.m_success ? "success" : "failed", ret.m_returnCode.c_str(), ret.m_code.c_str(), ret.m_errorMsg.c_str(), ret.m_message.c_str());
  57. iret = 0;
  58. }
  59. else {
  60. LogWarn(Severity_Middle, Error_Exception, LOG_EVT_POST_RECORDINFO_FAILED, CSimpleStringA::Format("Post video record infos fail, url=%s, syscode=%d, usercode=%s, errmsg=%s", req.m_url.c_str(), ret.m_sysCode, ret.m_userCode.c_str(), ret.m_errMsg.c_str()).GetData());
  61. }
  62. return iret;
  63. }