HttpRequest is subclass of TcpSocket. Both have a timeout member.
In HttpRequest it is set to 120000 and in TcpSocket it is set to Null.
The problem is that doing a HttpRequest::RequestTimeout(int ms) does not change TcpSocket::timeout, so for example HttpRequest::SendingData() will not work properly, as it calls TcpSocket::Put().
So it seems to set a timeout it is necessary to do this:
Actually, it is more complicated. First of all, it is true it now does not work as it should in case that TcpSocket has Null timeout.
Anyway, there is a difference between TcpSocket::Timeout and RequestTimeout. Timeout is for single socket operation, RequestTimeout is meant to be total timeout for the whole request.