WiFi shield TCP to webserver is very slow

Since there is no client.send() command, I presume that each of these creates a separate packet, and is sent as the wifi card gets it, as does the ethernet shield. For example, this will send 4 packets.

      client.println("Host: blah.com");
      client.println("User-Agent: TestClient");
      client.println("Connection: close");
      client.println();

This is the same stuff sent as one packet.

      client.println("Host: blah.com\r\nUser-Agent: TestClient\r\nConnection: close\r\n");

If someone could use Wireshark and confirm this, that would take the presumption out of the equation.

edit: Some user suggested a client.send() command be added to the ethernet library. That would not be a bad idea. That way you could use the device buffer instead of the Arduino SRAM. It would go something like this to send one packet:

      client.println("Host: blah.com");
      client.println("User-Agent: TestClient");
      client.println("Connection: close");
      client.println();
      client.send();

edit2: To maintain legacy compatibility, it would require two new functions. One to prevent the immediate send, and another to send.

       client.nosend();
      client.println("Host: blah.com");
      client.println("User-Agent: TestClient");
      client.println("Connection: close");
      client.println();
      client.send();