Esempio n. 1
0
int http_get_warningduration(int *value)
{
	int rt;
	char		result_str[MAX_RESULT] = {0};
	char		response_json_str[MAX_RESULT] = {0};
	const char url_str[]= "http://127.0.0.1/cgi-bin/rest/network/GatewaySettingOperation.cgi?operatortype=0&param1=0";
	cJSON 		*response_json, *json_temp;

	rt = http_curl_get(url_str, result_str);
	if(rt <0) {
		GDGL_DEBUG("invoke api failed\n");
		return -1;
	}
	get_json_str(response_json_str, result_str);
	response_json = cJSON_Parse(response_json_str);

	if (!response_json)
	{
		GDGL_DEBUG("json parse Error before: (%s)\n", cJSON_GetErrorPtr());
		return -2;
	}

    json_temp = cJSON_GetObjectItem(response_json, "warningduration");
	if(!json_temp) {
		GDGL_DEBUG("cJSON_GetObjectItem failed\n");
		cJSON_Delete(response_json);
		return -2;
	}
    *value = json_temp->valueint;

    cJSON_Delete(response_json);
    return 0;
}
Esempio n. 2
0
static void load_json_str_value(int8 *dest, int32 max_len, json_t *jobj, int8 *name)
{
	int8 *data = get_json_str(jobj, name);

	if (data == NULL)
		return;
	strncpy(dest, data, max_len - 1);
}
static void load_json_str_value(char *dest, int max_len, json_t *jobj, char *name)
{
	char *data = get_json_str(jobj, name);

	if (data == NULL)
		return;
	strncpy_safe(dest, data, max_len, max_len - 1);
}
Esempio n. 4
0
int http_get_dev_modeid(char *mode_id, const char *ieee)
{
	int rt;
	char		result_str[MAX_RESULT] = {0};
	char		response_json_str[MAX_RESULT] = {0};
	char url_str[200];
	cJSON 		*response_json, *json_node, *json_temp;
	char *temp_mode_id;

	snprintf(url_str, sizeof(url_str), "http://127.0.0.1/cgi-bin/rest/network/zbGetZBNodeByIEEE.cgi?"
			"ieee=%s&callback=1234&encodemethod=NONE&sign=AAA", ieee);

	rt = http_curl_get(url_str, result_str);
	if(rt <0) {
		GDGL_DEBUG("invoke api failed\n");
		return -1;
	}
	get_json_str(response_json_str, result_str);
	response_json = cJSON_Parse(response_json_str);

	if (!response_json)
	{
		GDGL_DEBUG("json parse Error before: (%s)\n", cJSON_GetErrorPtr());
		return -2;
	}

    json_temp = cJSON_GetObjectItem(response_json, "response_params");
	if(!json_temp) {
		GDGL_DEBUG("cJSON_GetObjectItem failed\n");
		cJSON_Delete(response_json);
		return -2;
	}

	json_node = cJSON_GetObjectItem(json_temp, "node");
	if(!json_node) {
		GDGL_DEBUG("cJSON_GetObjectItem failed\n");
		cJSON_Delete(response_json);
		return -2;
	}

    json_temp = cJSON_GetObjectItem(json_node, "model_id");
	if(!json_temp) {
		GDGL_DEBUG("cJSON_GetObjectItem failed\n");
		cJSON_Delete(response_json);
		return -2;
	}
	temp_mode_id = json_temp->valuestring;
//	printf("temp_mode_id=%s\n", temp_mode_id);
	snprintf(mode_id, strlen(temp_mode_id)+1, "%s", temp_mode_id);

    cJSON_Delete(response_json);
    return 0;
}
Esempio n. 5
0
/*
 * 调api后将数据上传至云代理
 * */
int invoke_api_and_upload(const char *url_str, int api_num)
{
	time_t		timestamp;
//	char timestamp_str[10] = {0};

	int			rt =0;
	char		result_str[MAX_RESULT] = {0};
	char		response_json_str[MAX_RESULT] = {0};

	cJSON 		*response_json;
	cJSON	    *new_json;
	char 		*new_json_str;

	timestamp = time(NULL);
//	snprintf(timestamp_str, sizeof(timestamp_str), "%ld", timestamp);

	wati_server_init_ok();
	rt = http_curl_get(url_str, result_str);
	if(rt <0) {
		GDGL_DEBUG("invoke api failed\n");
		return -1;
	}
	get_json_str(response_json_str, result_str);
	response_json = cJSON_Parse(response_json_str);
	if (!response_json)
	{
		GDGL_DEBUG("json parse Error before: (%s)\n", cJSON_GetErrorPtr());
		return -2;
	}
	else
	{
		new_json = cJSON_CreateObject();
		cJSON_AddNumberToObject(new_json, "datatype", api_num);
		cJSON_AddItemToObject(new_json, "data", response_json);
		cJSON_AddNumberToObject(new_json, "uploadtime", timestamp);
		new_json_str = cJSON_PrintUnformatted(new_json);
//		printf("new_json_str:%s, strlen:%d\n", new_json_str, strlen(new_json_str));
		GDGL_DEBUG("new_json_str strlen:%d, string:%s\n", strlen(new_json_str), new_json_str);
		rt = upload_2_server(new_json_str, strlen(new_json_str));
		free(new_json_str);
		cJSON_Delete(new_json);
		return rt;
	}
	cJSON_Delete(response_json);
	return rt;
}