He visto un par de veces personas usando ASIHTTPRequest para descargar archivos. Ahora me pregunto por qué? ¿Cuáles son los beneficios principales sobre NSURLConnection?¿Por qué debería preferir ASIHTTPRequest sobre NSURLConnection para descargar archivos de la web?
Respuesta
Existen varias razones. En mi mente estos son los más importantes:
ASIHTTPRequest
permite especificar un delegado para cada solicitud (frente a un delegado para toda unaNSURLConnection
); esto es útil porque cada solicitud tiene, en principio, un procesamiento diferente una vez que obtiene los datos que estaba esperando;ASIHTTPRequest
es compatible con un mecanismo de almacenamiento en caché que hace que sea muy fácil hacer que su aplicación funcione sin conexión (y que muestre los datos en caché); ningún mecanismo de este tipo en NSURLRequest;Si busca stackoverflow, encontrará muchos consejos en un muy strange memory leak que provocan
NSURLConnection/NSURLRequest
; esto no se experimenta conASIHTTRequest
;ASIHTTRequest
ofrece una mejor implementación de Accesibilidad, que es absolutamente necesaria; Apple proporcionó uno es said to be buggy.
Espero que esto ayude.
+1 por mencionar la implementación de Accesibilidad y los problemas de fuga de NSURLConnection/NSURLeRquest – Till
Suena bien. Muy bien. Pero, ¿y si Apple corrige el error de detección de accesibilidad? ¿Entonces ASIHTTPRequest dejará de funcionar correctamente? –
@Mikhalo Ivanokov: no, porque ASA Reachability es solo un archivo fuente, no dependencias de Apple Reachability. – sergio
En mi humilde opinión se reduce a la facilidad de uso para el programador. Es muy fácil trabajar con él y está increíblemente bien documentado. Puede usar colas fácilmente y administrar su estado a través de la delegación.
Fuera del alcance de los archivos, es más fácil manejar la delegación de respuestas utilizando ASI en comparación con las clases NSURL incorporadas.
ASIHTTPRequest
es simplemente significativamente más fácil de usar. No es necesario concatenar manualmente los bloques de datos, las solicitudes POST son fáciles de construir, los bloques son compatibles, ASIHTTPRequest
es una subclase de NSOperation
para que pueda poner en cola sus solicitudes, etc.
mi aplicación funciona bien para archivos PDF pequeños cuando se descarga pero se bloquea cuando el tamaño del archivo PDF es de más de 2 MB. he usado NSURLConnection. ¿Puede ayudarme por favor? – mAc
http://stackoverflow.com/questions/8123294/my-app-crashes-when-downloading-large-pdfs-2mb-in-iphone ------ marque esta pregunta. – mAc
puntos de fuerza de ASIHTTPRequest son mi humilde opinión:
- fácil de usar
- archivo de publicar
- autenticación integrada
- compresión incorporada zlib
- haciendo fila
+1 para mencionar autenticación y compresión ... – sergio
NSURLRequest ha incorporado compresión zlib – hooleyhoop
mi aplicación funciona bien para archivos PDF pequeños cuando se descarga pero se bloquea cuando el tamaño del archivo PDF es de más de 2 MB. he usado NSURLConnection. ¿Puede alguien ayudarme por favor ... – mAc
- 1. ASIHTTPRequest vs NSURLConnection
- 2. ¿Debería siempre preferir MySQL InnoDB sobre MyISAM?
- 3. ¿Por qué debería preferir HTML5 a HTML4 en este caso?
- 4. Situaciones para preferir Apache Lucene sobre Solr?
- 5. Debería preferir los métodos estáticos en C#
- 6. ¿Qué protocolo (FTP o HTTP) es mejor para descargar/cargar archivos pequeños o grandes?
- 7. ¿Hay razones para preferir matrices sobre ArrayLists?
- 8. ¿Por qué debería preferir usar la lista de inicialización de miembros?
- 9. ¿Por qué debería usar Doctrine sobre Zend_Db?
- 10. ¿Cuándo preferir JSON sobre XML?
- 11. NSURLConnection descargar archivo grande (> 40MB)
- 12. ¿Dónde debería descargar CorFlags.exe?
- 13. ¿Qué debería saber todo desarrollador web sobre el cifrado?
- 14. Razones para preferir CVS sobre SVN o Git
- 15. Params :: Validate o Params :: Check, ¿por qué debería preferir uno u otro?
- 16. ASIHTTPRequest for Dummies
- 17. ¿Por qué debería usar Flex?
- 18. ¿RESTKit es un buen reemplazo para ASIHTTPRequest?
- 19. Cuándo preferir `y` sobre` andalso` en las pruebas de guardia
- 20. Usando un proxy para NSURLConnection
- 21. Descargar CSS de la página web
- 22. ¿Por qué debería/no debería usar el operador "nuevo" para instanciar una clase, y por qué?
- 23. ¿Por qué debería usar Drools?
- 24. ¿Por qué debería aprender C++
- 25. ¿Por qué debería aprender COM?
- 26. ¿Qué estructura web de Perl debería usar?
- 27. ¿Por qué debería elegir Crystal Report o SSRS sobre la tabla HTML sin formato?
- 28. problema de host web, archivos .apk para descargar desde el navegador de Android
- 29. NSURLConnection NSURLSolicitud de proxy para llamadas al servicio web asíncronas
- 30. Cómo usar NSURLRequest/NSURLConnection para descargar un archivo mp3 a la aplicación?
Un año después de esta pregunta, uno debe notar que hoy en día debe seleccionar AFNetworki ng en lugar de ASIHTTPRequest. – Till