I've seen a couple of times people using ASIHTTPRequest to download files. Now I wonder why? What are the core benefits over NSURLConnection?
问题:
回答1:
There are several reasons. In my mind these are the major ones:
ASIHTTPRequest
allows to specify a delegate for each request (vs. one delegate for a wholeNSURLConnection
); this is useful because each request has in principle a different processing once you get the data you were waiting for;ASIHTTPRequest
supports a caching mechanism that make very easy to make your app working when offline (and showing the cached data); no such mechanism in NSURLRequest;If you search stackoverflow, you will find many hints at a very strange memory leak that
NSURLConnection/NSURLRequest
provoke; this is not experienced withASIHTTRequest
;ASIHTTRequest
offers a better implementation of Reachability, which is absolutely necessary; the Apple provided one is said to be buggy.
Hope this helps.
回答2:
ASIHTTPRequest
is just significantly easier to use. You don't have to concatenate data blocks manually, POST requests are easy to construct, blocks are supported, ASIHTTPRequest
is a subclass of NSOperation
so you can easily queue up your requests, etc.
回答3:
ASIHTTPRequest's strength points are IMHO:
- easy to use
- file posting
- built-in authentication
- built-in zlib compression
- queing
回答4:
IMHO it comes down to ease of use for the programmer. It's very easy to work with and is incredibly well documented. You can very easily use queues and manage their status via delegation.
Outside the scope of files it is must easier to handle response delegation using ASI compared to the built in NSURL classes.