Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why should I prefer ASIHTTPRequest over NSURLConnection for downloading files from the web?

I've seen a couple of times people using ASIHTTPRequest to download files. Now I wonder why? What are the core benefits over NSURLConnection?

like image 928
Proud Member Avatar asked May 26 '11 18:05

Proud Member


4 Answers

There are several reasons. In my mind these are the major ones:

  1. ASIHTTPRequest allows to specify a delegate for each request (vs. one delegate for a whole NSURLConnection); this is useful because each request has in principle a different processing once you get the data you were waiting for;

  2. 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;

  3. If you search stackoverflow, you will find many hints at a very strange memory leak that NSURLConnection/NSURLRequest provoke; this is not experienced with ASIHTTRequest;

  4. ASIHTTRequest offers a better implementation of Reachability, which is absolutely necessary; the Apple provided one is said to be buggy.

Hope this helps.

like image 135
sergio Avatar answered Oct 17 '22 12:10

sergio


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.

like image 27
kubi Avatar answered Oct 17 '22 11:10

kubi


ASIHTTPRequest's strength points are IMHO:

  • easy to use
  • file posting
  • built-in authentication
  • built-in zlib compression
  • queing
like image 43
Till Avatar answered Oct 17 '22 10:10

Till


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.

like image 3
shawnwall Avatar answered Oct 17 '22 11:10

shawnwall