#include "http_client.h"
#include "string.h"
#include "stdio.h"
#include "main.h"
#include "myFIle.h"
#include "sys_http.h"
#include "log.h"
#include "main.h"
  
uint8_t load_http_config=0;
//get请求  http://gpu.ringzle.com:8082/iot/transmit/getTransmitConfig/DT8pd3ac6h 端口8082
//目前为此处去控制http一次性读入数据大小，应为该处为读入函数
void http_getDemo(void)
{
	int datalen;
	int ret;
	char* device_config = mymalloc(SRAMEX, 10);
	memset(device_config, 0,10);
	portENTER_CRITICAL();
	read_file("device.txt", device_config);
	portEXIT_CRITICAL();
	if((strstr(device_config,"tcp_config")) == NULL)
	{
			myfree(SRAMEX, device_config);
			char *http_data=mymalloc(SRAMEX, 20 * 1024);
			char *http=mymalloc(SRAMEX,50);
			sprintf(http,"/iot/transmit/getTransmitConfig/%s",gatewayId);
			ret = http_clientGet("gpu.ringzle.com", http, 8082, 0, (uint8_t*)http_data, &datalen);
			if(ret==200) //获取成功
			{
				DeleteDirFile("device.txt");	
				write_file("device.txt",http_data,strlen(http_data));
				load_http_config=1;
				printf("http get demo success\n");
			}
			else
			{
				printf("http get demo failed\n");
			}
			HTTP_PRINTF("%s", (char *)http_data);
			HTTP_PRINTF("\r\n ret=%d datalen=%d\r\n", ret, datalen);
			myfree(SRAMEX,http_data);
			myfree(SRAMEX,http);
	}
	myfree(SRAMEX, device_config);
}


char *postData = "{\"bandwidth\":250,\"codeRate\":4700}";

uint8_t postResult[512];

//POST请求 http://gpu.ringzle.com/iot/test/httpTest  端口号8082
void http_postDemo(void)
{
	int datalen, ret;
	
	memset(postResult, 0, sizeof(postResult));
	
//	ret = http_clientPost("gpu.ringzle.com", "/iot/test/httpTest", 8082, 0, http_data, 5837, postResult, &datalen);
	ret = http_clientPost("gpu.ringzle.com", "/iot/test/httpTest", 8082, 0, (uint8_t *)postData, strlen(postData), postResult, &datalen);
	
	HTTP_PRINTF("%s", (char *)postResult);
	HTTP_PRINTF("\r\n ret=%d datalen=%d\r\n", ret, datalen);	
}
/*
*********************************************************************************************************
*	函 数 名: int get_http_config(void)
*	功能说明: 获取http配置的相关参数
*	形    参：无
*	返 回 值: 返回http是否配置 0：没有配置过，1：配置过
*********************************************************************************************************
*/
int get_http_config(void)
{
	return load_http_config;
}
