Post TCP SIM 800L

I’m tired of trying to connect tcp with post.
this my code

#include <SoftwareSerial.h> 
#include <gprs.h>
#define GSM_PORT mySerial
SoftwareSerial mySerial(6, 7); // RX, TX
GPRS gprs;

void KirimData()
{
  GSM_PORT.println("AT+CIPSEND");//begin send data to remote server
  delay(4500);
  GSM_PORT.print("POST /?id=123456789");//here is the feed you apply from pachube
      GSM_PORT.print("&lat=");
      GSM_PORT.print("-6.027786");
      GSM_PORT.print("&lon=");
      GSM_PORT.print("100.539520");
      GSM_PORT.print("&timestamp=20");
      GSM_PORT.print("2017");  
      GSM_PORT.print("-");  
      GSM_PORT.print("9"); 
      GSM_PORT.print("-");  
      GSM_PORT.print("23");     
      GSM_PORT.print("T");    
      GSM_PORT.print("18");     
      GSM_PORT.print("%3A");  
      GSM_PORT.print("58"); 
      GSM_PORT.print("%3A");  
      GSM_PORT.print("30");  
      GSM_PORT.print("Z");
      GSM_PORT.print("&hdop="); 
      GSM_PORT.print("1580");     
      GSM_PORT.print("&altitude=");
      GSM_PORT.print("709.60");
      GSM_PORT.print("&speed=");   
      GSM_PORT.print("0.14"); 
      GSM_PORT.print("&heading=");  
      GSM_PORT.print("0.00");               
  GSM_PORT.print(" HTTP/1.1\r\n"); 
  GSM_PORT.print("Host: www.myweb.com:6065\r\n");
  GSM_PORT.print("Accept: */*\r\n");
  GSM_PORT.print("Connection: Keep-Alive\r\n");
  GSM_PORT.print("Content-Type: application/x-www-form-urlencoded\r\n");
  GSM_PORT.print("User-Agent: SIMCOM_MODULE\r\n");
  GSM_PORT.print("Content-Length: 0\r\n");
  GSM_PORT.print("\r\n");
}

void setup() {
  Serial.begin(9600);
  while(!Serial);
  delay(15000);
  gprs.preInit();
  Serial.println("Lagi Test Post TCP...");
  while(0 != gprs.init()) {
     delay(1000);
     Serial.println("init error");
  }  
  while(!gprs.join("internet")) {
      Serial.println("gprs join network error");
      delay(2000);
  }  
  Serial.print("IP Address is ");
  Serial.println(gprs.getIPAddress());  

  if(0 == gprs.connectTCP("www.myweb.com", 6065)) {
      Serial.println("connect www.myweb.com success");
  }else{
      Serial.println("connect error");
      while(1);
  }
  Serial.println("waiting to fetch...");
  KirimData();   
}

Please help me. thank you

this my code

Which may, or may not, correctly use the AT=CIPSEND command. What it does do is say that the POST request has no data. I can not see the sense in using a POST request when all the data to be sent is in the POST request.

Usually, one wants to make a POST request, as opposed to making a GET request, to keep the data private from the request URL. You have no private data, so making a POST request doesn't make sense.

The code you posted does something. You forgot to tell us what it actually does.

You expect the code to do something. You forgot to tell us what you expect it to do, and how you know that it is not doing that.