Sending data through esp8266 using arduino
SoftwareSerial can't listen on two instances. There is a .listen() function to switch between SoftwareSerial instances.

The esp8266 AT firmware doesn't wait until you listen on the SoftwareSerial instance. If there is a connection to the server it sends +IPD and data. If the SoftwareSerial instance doesn't listen the information about client connection is lost.

You must listen to esp8266 all the time, so you can't use two SoftwareSerial instances. 

You could use the RX pin of Uno to receive data from GPS module over hardware Serial.