If I understand your code, you wish to receive data over the network. Before doing a
client.read();
You should check to see if any data is waiting to be read. To do this, you might do something like this:
while (client.connected()) {
if (not client.available()) {
continue;
}
char c = client.read();
Perhaps you could provide a better description of how your code is supposed to work. It may be easier to forget about HTTP initially, use a Python socket to interact with the Arduino, and then convert to HTTP when everything works.