2010-01-14 10 views
8

AKTUALIZACJA: to pytanie jest oczywiście przestarzałe (patrz data). Polecam po prostu używając nowoczesnych funkcji iOS7, takich jak NSURLSession. Pytanie wydaje się być zachowane dla dokładności historycznej.Dobra biblioteka HTTP dla Objective-C/iPhone'a?

Co to jest dobra biblioteka HTTP dla iPhone'a (desktop Cocoa and)? Powinien mieć dobry interfejs do podstaw, takich jak nagłówki HTTP, wartości get/post (tworzenie łańcucha żądań, kodowanie/dekodowanie adresów URL), żądania synchronizacji i asynchronizacji ... najlepiej czysta implementacja Obj-C. NSURL * jest nieco brakuje.

+0

Nie znalazłem nic przydatnego. Czego szukasz, czego brakuje w NSURL? –

+0

darren - na przykład, łatwy sposób budowania żądań POST (wartości brył) z zestawu kluczy i wartości parametrów. NSURL tego nie daje. – Jaanus

Odpowiedz

12
+0

To i TTURLRequest oba wyglądają schludnie. – Jaanus

+1

Szybkie przejrzenie [dokumentacji biblioteki] (http://allseeing-i.com/ASIHTTPRequest/) i [github] (https://github.com/pokeb/asi-http-request/) ujawnia, że ​​biblioteka jest nie jest aktywnie rozwijany ani przez pierwotnego programistę, ani przez społeczność i ma [poważne problemy] (https://github.com/pokeb/asi-http-request/pull/345). – user272735

1

Miałem wielki sukces z Three20 projektu TTURLRequest. Jest to genericized wersja elementy interfejsu użytkownika stosowanych w Facebook App.

+0

Czy bezpieczny jest już oficjalny sklep z aplikacjami oddziałów? –

+1

Na stronie http://three20.info/ znajduje się wskaźnik aktualnego stanu App Store Three20, a w chwili pisania tego wpisu jest oznaczony jako "bezpieczny". –

1

Ustawienie parametrów posta w treści HTTP jest całkiem proste dzięki NSMutableURLRequest, możesz go zawinąć w wygodną metodę poprzez kategorię, jeśli jest to bardziej pożądane, Podobne do biblioteki OAuth google Code:

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

Checkout override setParameters, zwłaszcza te linie:


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

oczywiście, będziemy chcieli dostosować nagłówek typu treści dla określonej treści Twojego posta (np. json, xml, itp.).

Powiązane problemy