Good HTTP library for Objective-C / iPhone? [close

2019-03-20 07:28发布

UPDATE: this question is obviously obsolete (see the date). I recommend just using modern iOS7 features like NSURLSession. The question is preserved for historical accuracy, I guess.

What's a good HTTP library for (desktop Cocoa and) iPhone? Should just have a good interface to the basics like HTTP headers, get/post values (request string creation, URL encoding/decoding), sync and async requests... preferably pure Obj-C implementation. NSURL* is somewhat lacking.

5条回答
Anthone
3楼-- · 2019-03-20 07:56

How about what's already built into Cocoa in the forms of NSURLRequest and it's subclass NSMutableURLRequest? You'll probably also get to use NSURLConnection along with it...

查看更多
Summer. ? 凉城
4楼-- · 2019-03-20 07:56

Setting the post parameters in the HTTP body is pretty straight forward with NSMutableURLRequest, you can wrap it in a convenience method via a category if that's more desirable, similar to the OAuth library on google code:

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

Checkout the setParameters override, specifically these lines:


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

Of course, you'll want to adjust the content-type header for the specific content of your post body (e.g. json, xml, etc).

查看更多
Bombasti
5楼-- · 2019-03-20 08:01

Check out this http://code.tutsplus.com/tutorials/ios-quick-tip-interacting-with-web-services--mobile-10278 there is 3 libs. you can use...i think AFNetworking is good.

查看更多
Ridiculous、
6楼-- · 2019-03-20 08:02

I've had great success with the Three20 Project's TTURLRequest. It's a genericized version of the UI Elements used in the Facebook App.

查看更多
登录 后发表回答