I have a big problem: I need to send 200 objects at once and avoid timeouts.
while (true) { NameValueCollection data = new NameValueCollection(); data.A
It means what it says. The operation took too long to complete.
BTW, look at WebRequest.Timeout and you'll see that you've set your timeout for 1/5 second.