asuming that you're using NSURLRequest and NSURLConnection and friends, and you should simply stick to the delegation-paradigm and implement the appropreate delegate-methods, there's no need to bother with threading or (a)synchronous-issues.
connections are attached to the runloop, and will notify the delegate whenever something interesting happens. they are running on the main thread, but won't block.
About using POST instead of GET - there's not much to it.
Below a super simple setup, where is asumed that myDelegate, self.url, indata have already been assigned the appropreate values..
(not tested, cut/pasted as is..)