Posting the data to server

Hi, I’m trying to post data from Arduino to the server using AT commands… I used both TCP and HTTP connections… But the data is not send to the server… Please check my code and let me know if it is right or wrong…

#include<SoftwareSerial.h>

** SoftwareSerial client(2,3);**

** String Reading="{ “vehicleId” : 1, “version” : 1" }}";**

** void setup()**
** {**
** Serial.begin(9600); **
** client.begin(9600);**
** delay(1000);**
** while(client.available()!=0)**
** {**
** Serial.println(“Not Connected”);**
** delay(1000);**
** }**
** connectGPRS();**
** connectHTTP();**
** }**

** void loop()**
** {**
** //connectHTTP();**
** }**

** void connectGPRS()**
** {**
** client.println(“AT+CGATT=1”);**
** delay(1000);**
** ShowSerialData();**

** client.println(“AT+SAPBR=3,1,“Contype”,“GPRS””);**
** delay(1000);**
** ShowSerialData();**

** client.println(“AT+SAPBR=3,1,“APN”,“airtelgprs.com””);**
** delay(1000);**
** ShowSerialData();**

** client.println(“AT+SAPBR=1,1”);**
** delay(5000);**
** ShowSerialData();**

** client.println(“AT+SAPBR=2,1”);**
** delay(5000);**
** ShowSerialData();**
** }**

** void connectHTTP()**
** {**
__ /client.println(“AT+HTTPTERM”);__
** delay(5000);
*
__ ShowSerialData();*/__

** client.println(“AT+HTTPINIT”);**
** delay(10000);**
** ShowSerialData();**

** client.println(“AT+HTTPPARA=“CID”,1”);**
** delay(5000);**
** ShowSerialData();**

** client.println(“AT+HTTPPARA=“URL”,“test.server.com/ServerPath””);**
** //client.println(“AT+HTTPPARA=“URL”,“http://10.0.1.92:8081/check””);**
** delay(10000);**
** ShowSerialData();**

__ /client.println("AT+HTTPPARA=“CONTENT”,“application/json”);__
** delay(10000);
*
__ ShowSerialData();*/__

** client.println(“AT+HTTPDATA=6,1000”);**
** //client.println(Reading);**
** //client.println(“hello”);**
** delay(10000);**
** ShowSerialData();**

** client.println(Reading);**
** delay(20000);**
** ShowSerialData;**

** client.println(“AT+HTTPACTION=1”);**
** delay(10000);**
** ShowSerialData();**

** client.println(“AT+HTTPREAD”);**
** delay(5000);**
** ShowSerialData();**

__ /client.println(“AT+HTTPTERM”);__
** delay(5000);
*
__ ShowSerialData();*/__
** }**

** void ShowSerialData()**
** {**
** while(client.available()!=0)**
** {**
** Serial.write(client.read());**
** }**
** }]**
This is my program part…
And below is serial output… Please look on that too…
** AT+CGATT=1**

** OK**
** AT+SAPBR=3,1,“Contype”,“GPRS”**

** OK**
** AT+SAPBR=3,1,“APN”,“airtelgprs.com”**

** OK**
** AT+SAPBR=1,1**

** OK**
** AT+SAPBR=2,1**

** +SAPBR: 1,1,“100.100.97.117”**

** OK**
** AT+HTTPINIT**

** OK**
** AT+HTTPPARA=“CID”,1**

** OK**

** +HTTPACTION:1,601,0**
** AT+HTTPPARA=“URL”,“test.server.com/ServerPath”**

** OK**
** AT+HTTPDATA=6,1000**

** DOWNLOAD**

** ERROR**
** { “vehicleId” : 1, “version” : 1" }}**
** AT+HTTPACTION=1**

** OK**
** AT+HTTPREAD**

** OK**

 String Reading="{  \"vehicleId\" : 1,  \"version\" : 1\"  }}";

Why do you need to piss away resources using a String?

Why are there more } than { in the value?

Why didn't YOU look at the string that generated the error?