ESP8266 as Station Mode: Connected to Internet

char WIFI_NAME[] = "SSID";       // WiFi Name
char WIFI_PASS[]  = "Password";  // WiFi Password
char display[1023],wifi_send[200],RX_ST[1023],TX_ID[20];
uint8_t rx_char;
uint16_t count;
extern UART_HandleTypeDef huart1;
//-------------- Rx Callback Function -----
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
  if(huart->Instance== USART1)
  {
    display[count++]=rx_char;
    HAL_UART_Receive_IT(&huart1,&rx_char,1);
  }
}
void ESP8266_Setup(void)
{
	ESP8266_TX("AT\r\n","OK",4000);                // Device Checking
	ESP8266_TX("ATE0\r\n","OK",4000);              // ECHO OFF
	ESP8266_TX("AT+CWMODE=1\r\n","OK",4000);       // Station Mode
	sprintf(wifi_send,"AT+CWJAP=\"%s\",\"%s\"\r\n",WIFI_NAME,WIFI_PASS);
	ESP8266_TX(wifi_send,"GOT IP",8000);           // Connected to Internet
	memset (display, '\0',1023);                   // clear the buffer
	count=0;
}
void ESP8266_TX(char *b_send,char *return_string,uint16_t delay_time)
{
	char ESP8266_TX[10];
	sprintf(ESP8266_TX,"%s",return_string);
            sprintf(wifi_send,"%s",b_send);
	HAL_UART_Transmit(&huart1,(uint8_t*)wifi_send,strlen(wifi_send),1000);
	while(1)
	{
		sprintf(RX_ST,"%s",display);
		if(strstr(RX_ST,ESP8266_TX)) break;
	}
	HAL_Delay(delay_time);
	memset (display, '\0',1023);   // clear the buffer
	memset (wifi_send,'\0',200);   // clear the buffer
	memset (RX_ST, '\0',1023);     // clear the buffer
	count=0;
}
char latitude[]          = "Your Latitude";
char longitude[]         = "Your Longitude ";
char API_Key_weather[]   = "Your unique API key";
sprintf(wifi_send,"AT+CIPSTART=\"TCP\",\"api.openweathermap.org\",80\r\n");
ESP8266_TX(wifi_send,"CONNECT",200);
sprintf(wifi_send,"GET https://api.openweathermap.org/data/2.5/weather?lat=%s&lon=%s&appid=%s&units=metric\r\n\r\n\r\n",latitude,longitude,API_Key_weather);
sprintf(TX_ID,"AT+CIPSEND=%d\r\n",strlen(wifi_send));
ESP8266_TX(TX_ID,">",100);                    // Creating LINK
sprintf(wifi_send,"GET https://api.openweathermap.org/data/2.5/weather?lat=%s&lon=%s&appid=%s&units=metric\r\n\r\n\r\n",latitude,longitude,API_Key_weather);
HAL_UART_Transmit(&huart1,(uint8_t*)wifi_send,strlen(wifi_send),1000);
char API_Key_time[]      = "Your unique API key ";
sprintf(wifi_send,"AT+CIPSTART=\"TCP\",\"api.timezonedb.com\",80\r\n");
ESP8266_TX(wifi_send,"CONNECT",200);
sprintf(wifi_send,"GET /v2.1/get-time-zone?key=%s&format=json&by=position&lat=%s&lng=%s HTTP/1.1\r\nHost: api.timezonedb.com\r\n\r\n\r\n",API_Key_time,latitude,longitude);
sprintf(TX_ID,"AT+CIPSEND=%d\r\n",strlen(wifi_send));
ESP8266_TX(TX_ID,">",100);                    // Creating LINK 
sprintf(wifi_send,"GET /v2.1/get-time-zone?key=%s&format=json&by=position&lat=%s&lng=%s HTTP/1.1\r\nHost: api.timezonedb.com\r\n\r\n\r\n",API_Key_time,latitude,longitude);
HAL_UART_Transmit(&huart1,(uint8_t*)wifi_send,strlen(wifi_send),1000);
uint8_t min,second;
uint16_t timer_count;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance== TIM17)
	{
		second++;
		if(second>60)
			{
					timer_count++;
					min++;second=0;
			}
	}
}