1.Get方法
1.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequest new];
[request setURL:url];
[request setHTTPMethod:@"GET"];
NSHTTPURLRequest* response;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:nil];
[NSString* strRet = [[NSString alloc] initWithData:data encoding:NSUTF8String];
NSLog(strRet);
[strRet release];
1.2 使用NSString
view plaincopy to clipboardprint?
[NSString stringWithContentsOfURL:(NSURL *)url
encoding:(NSStringEncoding)enc error:(NSError **)error];
// 或者
[NSString stringWithContentsOfURL:(NSURL *)url];
1.3 使用NSData
view plaincopy to clipboardprint?
// options有兩個枚舉,NSMappedRead這個不懂, NSUncachedRead是不緩衝
[NSData dataWithContentsOfURL:(NSURL *)url
options:(NSUInteger)readOptionsMask
error:(NSError **)errorPtr]
// 或者
[NSData dataWithContentsOfURL:(NSURL *)url];
1.2和1.3的方法是缺點是沒辦法知道response的status,一般是返回200-299之間的數值代表請求成功.我們可以依照這個code來做資料處理, 如果對地址存在很有把握,就可以使用後兩種簡單的GET方法.
今天查了一下手冊,發現NSArray NSDictionary 也有xxxxWithContentsOfURL的方法, 這兩個我還沒用過, 應該是跟NSData和NSString一樣,但具體怎麼用我還不清楚.
2.Post方法
2.1 使用NSMutableURLRequest
view plaincopy to clipboardprint?
NSURL* url = [NSURL URLWithString:@"http://aminby.net"];
NSMutableURLRequest* request = [NSMutableURLRequest new];
[request setURL:url];
[request setHTTPMethod:@"GET"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:@"some param"];
NSHTTPURLRequest* response;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:nil];
[NSString* strRet = [[NSString alloc] initWithData:data encoding:NSUTF8String];
NSLog(strRet);
[strRet release];