web-dev-qa-db-fra.com

ASIHTTPRequest vs AFNetworking vs NSUrlRequest

Dans le passé, j'utilisais ASIHTTPRequest mais maintenant il y a NSURLRequest. Devrions-nous utiliser le NSURLRequest maintenant? Y a-t-il des inconvénients?

Pour les personnes qui lisent ceci maintenant: j'ai fini par utiliser AFNetworking comme mentionné dans les réponses

https://github.com/AFNetworking/AFNetworking

Merci,

29
William Falcon

NSURLConnection et NSURLRequest sont les classes Cocoa fournies pour la gestion des connexions. Dans iOS 7, Apple ajouté NSURLSession.

Mais je pense que vous trouverez AFNetworking pour être un cadre qui simplifie davantage les requêtes réseau (notamment les requêtes HTTP complexes). Si vous ne souhaitez pas utiliser de frameworks tiers pour une raison quelconque, vous pouvez utiliser NSURLConnection et/ou NSURLSession directement. Cela prend juste un peu plus de codage.

Si vous cherchez une bonne alternative à ASIHTTPRequest, AFNetworking est un excellent candidat.

Pour plus d'informations sur NSURLConnection et NSURLSession, consultez le Guide de programmation du système de chargement d'URL .

35
Rob

NSURLRequest existe depuis iOS2.0 (voir doc ), ce n'est donc pas précisément nouveau. ASIHTTPRequest n'est plus disponible, la dernière mise à jour était le 15 mai 2011, vous ne devez donc pas l'utiliser. AFNetworking est une délicieuse bibliothèque de mise en réseau pour iOS et Mac OS X comme décrit par eux auto , et rend vraiment votre vie plus facile, dans mon cas, c'est le premier framework que je inclure dans mon réseau les projets requis.

Lequel vous devez utiliser?, Je pense que cela dépend de vos besoins, avec NSURLRequest et NSURLConnection vous pouvez tout faire, en fait AFNetworking nous construisons au-dessus de NSURLConnection. Mais comme je vous le dis avant, AFNetworking a mon vote positif.

MODIFIER après iOS7

Si vous ciblez iOS7, vous devriez jeter un œil à NSURLSession, consultez la documentation officielle , et ce tutoriel .

EDIT pour Swift

Jetez un œil au projet Alamofire pour une implémentation réalisée dans Swift, il est également créé par mattt (l'auteur principal d'AFNetworking).

20
tkanzakic

L'asihttprequest est une bibliothèque obsolète qui ne prend pas en charge actuellement le développement. Ne l'utilise pas.

nSURLRequest est la classe iOS (cacao) par défaut à utiliser. Je le recommande pour très peu d'utilisation car vous aurez besoin d'écrire beaucoup de code pour gérer les réponses de connexion. En plus de cela, construisez toutes les bibliothèques http.

L'AFNetwoking est désormais standard pour http, à mon humble avis. Il utilise des blocs pour les rappels, il prend en charge différents types de données json, xml, etc. il est bien conçu et peut être facilement sous-classé. c'est mieux.

7
Yurii Kobets

Native (NSURLSession) vs AFNetworking ou toute autre bibliothèque.

Je vous recommanderais d'utiliser NSURLSession car cela vous donne beaucoup de personnalisation à la fin de l'application. Récemment, je travaillais sur un projet, je dois utiliser données de formulaire en plusieurs parties quelque part dans l'application. Je dois fournir mon corps de requête au gars du backend, j'ai utilisé AfNetworking logger pour imprimer mon corps mais cela ne m'a pas aidé. donc je suis passé à la bibliothèque native de cacao et j'ai obtenu ma solution.

je vous suggère donc d'utiliser un réseau natif iOS car cela vous donne beaucoup de personnalisation, mais si vous avez besoin de moins de code, vous pouvez utiliser n'importe quelle bibliothèque tierce.

1
Muhammad Waqas Bhati