I would not call sendSynchronousRequest . Instead, use the asynchronous version if you are not already making a call in the background thread (you do not want to block the user interface thread).
How do you know when an iOS response is received? NSLog? UI state changed?
See also the following questions:
NSURLConnection sendSynchronousRequest - foreground background
NSURLConnection sendSynchronousRequest takes too long to respond
Update
If you're a bit stuck, one strategy might be to eliminate the use of NSURLConnection as a problem.
- Strategy 1: try using
NSURL asynchronous connection call instead of synchronous - Strategy 2: try using a different HTTP library such as AFNetworking
If you want to take a closer look at what happens with an HTTP connection, you can use tools like Charles , Fiddler, or Wireshark to debug what kind of data is being sent and received. In order to get the maximum benefit from this kind of analysis, you need to know some HTTP protocols (protocols). This is probably more time than the previously mentioned strategies.
See also questions such as How to track network calls made from iOS Simulator .
Update
Are you accessing your own web server, or is it someone else's?
Have you carefully examined the headers sent to your web server (and those that were returned)? Pay attention to the length of the content, for example. Incorrect content lengths may cause a delay, as described here .
To see the request and the returned headers, you can use Firebug or something like wget or curl on the command line.
Also, double check for a newline at the end of your URL, as described here .