The end part is missing. I can only get the full response by using client.read() function. but it returns no String, and can't be parsed with the String member function.
That should be good reasons to drop this idea of using the String class that will poke holes in your memory. Build a buffer with read and you can parse with standard C functions