2010-01-14 10 views
8

UPDATE: questa domanda è ovviamente obsoleta (vedere la data). Raccomando solo l'utilizzo di moderne funzionalità iOS7 come NSURLSession. La domanda è conservata per precisione storica, immagino.Buona libreria HTTP per Objective-C/iPhone?

Che cos'è una buona libreria HTTP per (desktop Cocoa e) iPhone? Dovrebbe solo avere una buona interfaccia per le basi come le intestazioni HTTP, ottenere/pubblicare valori (richiesta creazione stringa, codifica/decodifica URL), richieste sincrone e asincrone ... preferibilmente pura implementazione Obj-C. NSURL * è piuttosto carente.

+0

Non ho trovato nulla di utile. Cosa stai cercando che manchi di NSURL? –

+0

darren: ad esempio, un modo semplice per creare richieste POST (valori del corpo) da un set di chiavi e valori dei parametri. NSURL non lo dà. – Jaanus

risposta

12
+0

Questo e TTURLRequest sembrano entrambi ordinati. – Jaanus

+1

Una rapida occhiata a [library documentation] (http://allseeing-i.com/ASIHTTPRequest/) e [github] (https://github.com/pokeb/asi-http-request/) rivela che la libreria è non più attivamente sviluppato né dallo sviluppatore originale né da una comunità e ha [seri problemi] (https://github.com/pokeb/asi-http-request/pull/345). – user272735

1

che ho avuto un grande successo con il progetto Three20 TTURLRequest. E 'una versione genericized degli elementi dell'interfaccia utente utilizzati nel Facebook App.

+0

Il negozio di app della filiale ufficiale è ancora al sicuro? –

+1

In http://three20.info/ c'è un indicatore dell'attuale stato di Three20 App Store e al momento della stesura è contrassegnato come "sicuro". –

3

Cosa ne pensi di ciò che è già incorporato in Cocoa nelle forme di NSURLRequest e nella sottoclasse NSMutableURLRequest? Probabilmente potrai usare anche

1

Impostare i parametri di post nel corpo HTTP è abbastanza semplice con NSMutableURLRequest, puoi avvolgerlo in un metodo di convenienza tramite una categoria se è più desiderabile, simile alla libreria OAuth su Google code:

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

Checkout l'override setParameters, in particolare queste righe:


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"]; 

Naturalmente, si vorrà per regolare l'intestazione del tipo di contenuto per il contenuto specifico del tuo corpo postale (ad es. json, xml, ecc.).

Problemi correlati