The reason you get better results in the simulator is probably because the simulator uses the built-in network card, and the Mac network card is probably stronger than the one on the iPad.
You can use the following code to change the timeout interval. This code will set the timeout to twenty seconds:
[request setTimeOutSeconds:20]
According to the ASIHTTPRequest How to Use page , you can tell ASIHTTPRequest to retry N times, for example:
[request setNumberOfTimesToRetryOnTimeout:2];
EDIT:
Although this is 2016 and ASIHTTPRequest has long been out of date, there is another useful bit of information for diagnosing network problems on iOS devices. Try using the Network Link Conditioner. It comes with iOS and can be downloaded on macOS.
This article (link) from NSHipster contains excellent configuration information.
Moshe source share