2010-01-14 7 views
8

MISE À JOUR: cette question est évidemment obsolète (voir la date). Je recommande d'utiliser des fonctionnalités iOS7 modernes comme NSURLSession. La question est conservée pour l'exactitude historique, je suppose.Bonne bibliothèque HTTP pour Objective-C/iPhone?

Qu'est-ce qu'une bonne bibliothèque HTTP pour (ordinateur de bureau et iPhone)? Devrait juste avoir une bonne interface avec les bases comme les en-têtes HTTP, les valeurs get/post (création de chaîne de requête, encodage/décodage d'URL), les requêtes synchrones et asynchrones ... de préférence une implémentation Obj-C pure. NSURL * manque un peu.

+0

Je n'ai rien trouvé d'utile. Que recherchez-vous qui manque avec NSURL? –

+0

darren - par exemple, un moyen simple de créer des requêtes POST (valeurs de corps) à partir d'un ensemble de clés de paramètres et de valeurs. NSURL ne donne pas cela. – Jaanus

Répondre

12
+0

Ceci et TTURLRequest tous les deux semblent soignés. – Jaanus

+1

Un rapide coup d'oeil sur [documentation de la bibliothèque] (http://allseeing-i.com/ASIHTTPRequest/) et [github] (https://github.com/pokeb/asi-http-request/) révèle que la bibliothèque est pas plus activement développé ni par le développeur d'origine ni par une communauté et il a [sérieux problèmes] (https://github.com/pokeb/asi-http-request/pull/345). – user272735

1

J'ai eu beaucoup de succès avec le TTURLRequest. du projet Three20 Il est une version genericized des éléments d'interface utilisateur utilisés dans l'App Facebook.

+0

Est-ce que l'app-store de la branche officielle est encore en sécurité? –

+1

Dans http://three20.info/, il y a un indicateur de l'état actuel du Three20 App Store, et au moment de la rédaction de ce document, il est marqué "safe". –

1

Définir les paramètres de publication dans le corps HTTP est assez simple avec NSMutableURLRequest, vous pouvez l'intégrer dans une méthode de commodité via une catégorie si cela est plus souhaitable, similaires à la bibliothèque OAuth sur google code:

http://oauth.googlecode.com/svn/code/obj-c1/OAuthConsumer/NSMutableURLRequest+Parameters.m

Commander le remplacement setParameters, en particulier ces lignes:


NSData *postData = [encodedParameterPairs dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
     [self setHTTPBody:postData]; 
     [self setValue:[NSString stringWithFormat:@"%d", [postData length]] forHTTPHeaderField:@"Content-Length"]; 
     [self setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

Bien sûr, vous aurez envie pour ajuster l'en-tête de type de contenu pour le contenu spécifique de votre corps de message (par ex. json, xml, etc.).

Questions connexes