Files
microser/cfg_parse/uds_huaweiyun.cpp

320 lines
234 KiB
C++
Raw Normal View History

2025-01-16 16:17:01 +08:00
/**
* @file: $RCSfile: uds_huaweiyun.cpp,v $
* @brief: $uds_huaweiyun include
*
* @version: $Revision: 1.00 $
* @date: $Date: 2023/10/24 18:34:00 $
* @author: $Author: caizhouyu $
* @state: $State: Exp $
*
* @latest: $Id: uds_huaweiyun.cpp,v 1.00 2023/10/24 18:34:00 caizhouyu Exp $
*
*/
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include "../mms/db_interface.h"
#include "../json/cjson.h"//WW 2023-08-27<32><37><EFBFBD><EFBFBD>json<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#include "../include/curl/curl.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
size_t req_reply(void* ptr, size_t size, size_t nmemb, void* stream)
{
//<2F><>ע<EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cookie<69><65><EFBFBD><EFBFBD>Ϣ
string* str = (string*)stream;
(*str).append((char*)ptr, size * nmemb);
//printf(">>>GetDevice in reply %s\n", (char*)ptr);
//GetCJson(ptr);
return size * nmemb;
}
/**
* @brief Get_Uuid <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>json,<EFBFBD>õ<EFBFBD>uuid
* @param ptr <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param uuid <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
* @return int 0<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD> -1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĴ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>
*/
int Get_Uuid(const char* ptr, char* uuid,char* filename) {
int result = 0;
//cout << ">>>GetDevice in reply" << (char*)ptr;
cJSON* json = cJSON_Parse((char*)ptr); //json<6F><6E>ʽ<EFBFBD><CABD><EFBFBD>л<EFBFBD>
cJSON* json_code;
cJSON* json_data;
cJSON* json_msg;
if (json) {
json_code = cJSON_GetObjectItem(json, "code"); //<2F><>ȡsuccess
json_msg = cJSON_GetObjectItem(json, "msg"); //<2F><>ȡsuccess
json_data = cJSON_GetObjectItem(json, "data"); //<2F><>ȡdata
if (json_code && json_code->type == cJSON_Number && json_code->valueint==0) {
printf("upload uds success\n");
cJSON* json_uuid;
cJSON* json_filename;
json_uuid = cJSON_GetObjectItem(json_data, "storeId"); //<2F><>ȡdata
if (json_uuid && json_uuid->type == cJSON_String) {
strcpy(uuid, json_uuid->valuestring);
printf("read uds uuid success:%s\n", uuid);
}
json_filename = cJSON_GetObjectItem(json_data, "fileName"); //<2F><>ȡdata
if (json_filename && json_filename->type == cJSON_String) {
strcpy(filename, json_filename->valuestring);
printf("read uds filename success:%s\n", filename);
}
result = 1;
}
else if (json_msg && json_msg->valuestring != NULL)
{
printf("uuid get falie msg: %s\n", json_msg->valuestring);
result = 0;
}
else
{
printf("get uds uuid error :do not get msg\n");
result = 0;
}
}
else {
printf("get uds uuid error:do not get json and %s\n", cJSON_GetErrorPtr());
result = 0;
}
cJSON_Delete(json);
return result;
}
// <20><><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD>
void Write_Byte_Array_To_File(char* local_path, char* data_array, long size) {
// <20><><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD>
FILE* outFile = fopen(local_path, "wb");
if (outFile != NULL) {
fwrite(data_array, sizeof(char), size, outFile);
fclose(outFile);
printf("File saved successfully.\n");
}
else {
printf("Failed to open file for writing\n");
}
}
void Save_File(const char* ptr, char* local_path) {
//cout << ">>>GetDevice in reply" << (char*)ptr;
cJSON* json = cJSON_Parse((char*)ptr); //json<6F><6E>ʽ<EFBFBD><CABD><EFBFBD>л<EFBFBD>
cJSON* json_success;
cJSON* json_data;
cJSON* json_msg;
if (json) {
json_success = cJSON_GetObjectItem(json, "sucess"); //<2F><>ȡsuccess
json_msg = cJSON_GetObjectItem(json, "msg"); //<2F><>ȡsuccess
json_data = cJSON_GetObjectItem(json, "data"); //<2F><>ȡdata
if (json_success && json_success->type == cJSON_True) {
printf("save uds file success\n");
if (json_data && json_data->type == cJSON_String) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long decodedLen = strlen(json_data->valuestring) * 3 / 4;
char* decodedStr = (char*)malloc(decodedLen + 1);
// <20><><EFBFBD><EFBFBD>Base64<36><34><EFBFBD><EFBFBD>
int success = base64_decode(json_data->valuestring, strlen(json_data->valuestring), decodedStr, &decodedLen);
Write_Byte_Array_To_File(local_path, decodedStr, decodedLen);
free(decodedStr);
}
}
else if (json_msg && json_msg->valuestring != NULL)
{
printf("save uds file falie msg: %s\n", json_msg->valuestring);
}
else
{
printf("save uds file error :do not get msg\n");
}
}
else {
printf("save uds file error:do not get json and %s\n", cJSON_GetErrorPtr());
}
cJSON_Delete(json);
}
int WebAPI_Uds_Upload(char* strUrl, char* loacl_path, char* uuid,char* filename)
{
int result = 0;
printf("loaclpath: %s\n", loacl_path);
/*char json_buf[] = "{\"code\":0,\"msg\":\"success\",\"data\":\"0903d01092381283918391312131awe\",\"encrypt_data\":null,\"other\":null,\"sucess\":true}";
Get_Uuid(json_buf, uuid);
printf("loaclpath: %s\n", uuid);*/
// curl<72><6C>ʼ<EFBFBD><CABC>
CURL* curl = curl_easy_init();
// curl<72><6C><EFBFBD><EFBFBD>ֵ
CURLcode res;
if (curl)
{
//<2F><><EFBFBD><EFBFBD>curl<72><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
struct curl_slist* header_list = NULL;
//<2F><><EFBFBD><EFBFBD>Content-TypeΪmultipart/form-data
header_list = curl_slist_append(header_list, "Content-Type: multipart/form-data");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, header_list);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧͷ<D3A6><CDB7><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpost<73><74><EFBFBD><EFBFBD>
curl_easy_setopt(curl, CURLOPT_POST, 1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>URL<52><4C>ַ
curl_easy_setopt(curl, CURLOPT_URL, strUrl);
//<2F><><EFBFBD><EFBFBD>post<73><74><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
struct curl_httppost* formpost = NULL;
struct curl_httppost* lastptr = NULL;
// <20><><EFBFBD><EFBFBD>form-data<74>ֶ<EFBFBD>
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "file", CURLFORM_FILE, loacl_path, CURLFORM_END);
//curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "password", CURLFORM_COPYCONTENTS, "secretpassword", CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
//<2F><><EFBFBD><EFBFBD>ssl<73><6C>֤
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
//CURLOPT_VERBOSE<53><45>ֵΪ1ʱ<31><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ϸ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>Ϣ
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>պ<EFBFBD>д<EFBFBD><EFBFBD><EBBAAF>
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, req_reply);
string resPost0;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&resPost0);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
//<2F><><EFBFBD>ó<EFBFBD>ʱʱ<CAB1><CAB1>
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
printf(">>>uds upload Post in curl post\n");
// <20><><EFBFBD><EFBFBD>post<73><74><EFBFBD><EFBFBD>
res = curl_easy_perform(curl);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
if (res != CURLE_OK) {
printf("uds upload failed res code: ");
result = 0;
}
else {
printf("uds upload success,string %s", resPost0.c_str());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>webapi<70><69><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD>
result=Get_Uuid(resPost0.c_str(), uuid,filename);
}
// <20>ͷ<EFBFBD><CDB7><EFBFBD>Դ
curl_slist_free_all(header_list);
curl_formfree(formpost);
}
else
{
printf(">>> uds upload init failed");
result = 0;
}
curl_easy_cleanup(curl);
return result;
}
void WebAPI_Uds_Download(char* strUrl, char* uuid, char* local_path,char* filename)
{
//const char json_buf[] = "{\"code\":0,\"msg\":\"success\",\"data\":\"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCASHBBIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+2iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9J8CEf6SM846fjXo9eE6Hqsml3iSAnymYCROxzxkjvgfj6EV7LZapaXyBopVz3UsAQfTBOf8g9xQBo0U3en95f8Avof40b0/vL/30P8AGgB1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXPeJiP7Kn5Hbv71utNEud0sYx1y6jtnuR2rynxNrpv1ksLNztLc8+hxknpjjGCeCwIPTIBxA6D6ClpACoCnqAAe/I4PP1paACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAp6ySIQVkdSOhVmUj6EEYplFAE/wBquf8An4n/AO/0n/xVH2q5/wCfif8A7/Sf/FVBRQBN9ouP+e83/f1//iqPtFx/z3m/7+v/APFVDRQBN9ouP+e83/f1/wD4qj7Rcf8APeb/AL+v/wDFVDRQBN9ouP8AnvN/39f/AOKo+0XH/Peb/v6//wAVUNFAE32i4/57zf8Af1//AIqj7Rcf895v+/r/APxVQ0UATfaLj/nvN/39f/4qj7Rcf895v+/r/wDxVQ0UATfaLj/nvN/39f8A+Ko+0XH/AD3m/wC/r/8AxVQ0UATfaLj/AJ7zf9/X/wDiqPtFx/z3m/7+v/8AFVDRQBN9ouP+e83/AH9f/wCKo+0XH/Peb/v6/wD8VUNFAE32i4/57zf9/X/+Ko+0XH/Peb/v6/8A8VUNFAE32i4/57zf9/X/APiqPtFx/wA95v8Av6//AMVUNFAEpnnbrNKfrI5/maj3NnO45HQ5OfzpKKADr1ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACilwcbsHb6446469OvH1puRzyOOuOaALfkJ6t+Y/wo8hPVvzH+FUjcEHBZv++m/wpPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/wB5v++m/wAKPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/AAqj9pP95v8Avpv8KPtJ/vN/303+FAF7yE9W/Mf4UeQnq35j/CqP2k/3m/76b/Cj7Sf7zf8AfTf4UAXvIT1b8x/hR5CerfmP8Ko/aT/eb/vpv8KUXBJwGb/vpv8ACgB9FGRx79Pxo6daACiiigAooJA5NGQOT078gfqQR+Yp2b2TYBRVf+29Gzj+2rLPp9ssuv0xn8M1cETtyqNjjBPf3zhQfwFICOipfIl/uH9P8aPIl/uH9P8AGgCKipfIl/uH9P8AGjyJf7h/T/Gk2lu0vVpfmOzeybIqKkEUhOAppfIl/uH9P8ad09ncVmt1YioqXyJf7h/T/GjyJf7h/T/GgCKinbH/ALrf98n/AApCrDGQRngZBGT6D16igBKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACg8An0opG6H6
//Save_File1(json_buf, local_path);
// curl<72><6C>ʼ<EFBFBD><CABC>
CURL* curl = curl_easy_init();
// curl<72><6C><EFBFBD><EFBFBD>ֵ
CURLcode res;
if (curl)
{
//<2F><><EFBFBD><EFBFBD>curl<72><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
struct curl_slist* header_list = NULL;
header_list = curl_slist_append(header_list, "Content-Type:application/json;");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, header_list);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧͷ<D3A6><CDB7><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpost<73><74><EFBFBD><EFBFBD>
curl_easy_setopt(curl, CURLOPT_POST, 1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>URL<52><4C>ַ
curl_easy_setopt(curl, CURLOPT_URL, strUrl);
//<2F><><EFBFBD><EFBFBD>post<73><74><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
cJSON* json_root = cJSON_CreateObject();
cJSON_AddItemToObject(json_root, "isWrap", cJSON_CreateString("1"));
cJSON_AddItemToObject(json_root, "storeId", cJSON_CreateString(uuid));
cJSON_AddItemToObject(json_root, "filename", cJSON_CreateString(filename));
char* szjson = cJSON_Print(json_root);
printf(">>>json %s\n", szjson);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, szjson);
//<2F><><EFBFBD><EFBFBD>ssl<73><6C>֤
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
//CURLOPT_VERBOSE<53><45>ֵΪ1ʱ<31><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ϸ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>Ϣ
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>պ<EFBFBD>д<EFBFBD><EFBFBD><EBBAAF>
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, req_reply);
string resPost0;
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&resPost0);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
//<2F><><EFBFBD>ó<EFBFBD>ʱʱ<CAB1><CAB1>
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
printf(">>>uds download Post in curl post\n");
// <20><><EFBFBD><EFBFBD>post<73><74><EFBFBD><EFBFBD>
res = curl_easy_perform(curl);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
if (res != CURLE_OK) {
printf("uds download failed res code: ");
}
else {
printf("uds download success,string %s", resPost0.c_str());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>webapi<70><69><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD>
Save_File(resPost0.c_str(), local_path);
}
curl_slist_free_all(header_list);
free(szjson);
cJSON_Delete(json_root);
}
else
{
printf(">>> uds download init failed");
}
curl_easy_cleanup(curl);
}
#ifdef __cplusplus
}
#endif