Serial1.prinln prints my host truncated for sim900 GSM shield

I am using GSM shield to send http request. however when I serial1.println my url, it gets truncated:

here is my code:

#include <String.h>

void setup()
{
  Serial1.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate 
  delay(500);
}
 
void loop()
{
  //after start up the program, you can using terminal to connect the serial of gprs shield,
  //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message,
  //if input 'd' in the terminal, it will execute DialVoiceCall(), etc.
 
  if (Serial.available())
    switch(Serial.read())
   {
     case 'h':
       SubmitHttpRequest();
       break;
   } 
  if (Serial1.available())
    Serial.write(Serial1.read());
}
 

 
///SubmitHttpRequest()

void SubmitHttpRequest()
{
  Serial1.println("AT+CREG?");
  delay(100);

 // Serial1.println("+CREG: 0,1");
//  delay(100);
  ShowSerialData();// this code is to show the data from gprs shield, in order to easily see the process of how the gprs shield submit a http request, and the following is for this purpose too.
 
  Serial1.println("AT+CGATT?");
  delay(100);
 
  ShowSerialData();
 
  Serial1.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");//setting the SAPBR, the connection type is using gprs
  delay(1000);
 
  ShowSerialData();
 
  Serial1.println("AT+SAPBR=3,1,\"APN\",\"my3g\"");//setting the APN, the second need you fill in your local apn server
  delay(4000);
 
  ShowSerialData();
 
  Serial1.println("AT+SAPBR=2,1");//setting the SAPBR, for detail you can refer to the AT command mamual
  delay(2000);
 
  ShowSerialData();
 
  Serial1.println("AT+HTTPINIT"); //init the HTTP request
  delay(2000); 
  
  ShowSerialData();

  Serial1.println("AT+HTTPPARA=\"CID\",1");
 delay(1000);
 ShowSerialData();
 String urlString = "AT+HTTPPARA=\"URL\",\"http://11.111.111.11:8080/api/v1/qwertyuiopasdfghjklz/telemetry\"";
  Serial1.println(urlString);// this is not working !!
 
  delay(3000);
ShowSerialData();

//  Serial1.println("AT+HTTPPARA=\"CONTENT\",\"application/json\"");
  
 Serial1.println("AT+HTTPPARA= 19,10000");
 Serial1.println("{\"key\":\"arduino58\"}");
 ShowSerialData();

  Serial1.println("AT+HTTPACTION=1");//submit the request 
  delay(10000);//the delay is very important, the delay time is base on the return from the website, if the return datas are very large, the time required longer.
  //while(!Serial1.available());
 
  ShowSerialData();
 
  Serial1.println("AT+HTTPREAD");// read the data from the website you access
  delay(300);
 
  ShowSerialData();
 
  Serial1.println("");
  delay(100);
}
 

void ShowSerialData()
{
  while(Serial1.available()!=0)
    Serial.write(Serial1.read());
}

pay attention to the line:

 String urlString = "AT+HTTPPARA=\"URL\",\"http://52.187.135.25:8080/api/v1/qwertyuiopasdfghjklz/telemetry\"";
  Serial1.println(urlString);// this is not working !!

and when its printed in the serial again its something like:

AT+HTTPPARA="URL","http://52.187.135.25:8080/api/v1/qwertyuiopaAT+HTTPPARA= 19,10000

you see how it gets truncated!

for reference here is my compete output :

AT+CREG?

+CREG: 0,1

OK
AT+CGATT?

+CGATT: 1

OK
AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","my3g"

OK
AT+SAPBR=2,1

+SAPBR: 1,3,"0.0.0.0"

OK
AT+HTTPINIT

ERROR
AT+HTTPPARA="CID",1

OK
AT+HTTPPARA="URL","http://52.187.135.25:8080/api/v1/qwertyuiopaAT+HTTPPARA= 19,10000
{"key":"arduino58"}
AT+HTTPACTION=1

AT+HTTPREAD

OK

string buffer 64 chars ?
Why store it in a variable ? Print it as two strings?