</pre><pre name="code" class="objc">#import "ViewController.h"
@interface ViewController ()<NSURLConnectionDataDelegate>
{
NSMutableData *mPostData;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)asynchronousPost:(id)sender {
//获取url
NSString *urlString = @"https://api.weibo.com/2/statuses/update.json";
//编码
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
//转换成NSURL
NSURL *url = [NSURL URLWithString:urlString];
//oc中用 NSMutableURLRequest 进行Post请求
NSMutableURLRequest *mAsynRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
//获取参数
NSString *bobyString = @"status=Rock%20and%20roll&access_token=2.00bUKyMD0Spw_tebfe20df130tHaM_";
//编码
NSData *data = [bobyString dataUsingEncoding:4];
//方法体设置
[mAsynRequest setHTTPMethod:@"POST"];
[mAsynRequest setHTTPBody:data];
//连接
NSConnection *connectionPost = [NSURLConnection connectionWithRequest:mAsynRequest delegate:self];
}
#pragma mark-----------------------------------
服务器开始响应,准备向客户发送数据
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
mPostData = [NSMutableData data];
}
//从服务器接收数据,并且此方法会执行很多次
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[mPostData appendData:data];
}
//接收数据完成
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//Json数据格式解析,利用系统提供的API进行Json数据解析
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:mPostData options:NSJSONReadingAllowFragments error:nil];
// NSLog(@"%@",dictionary);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end