在前一章说明了怎么实用GET异步请求实现网络编程(UI之网络编程(GET异步)),这章讲解POST异步请求实现网络编程
和GET异步的差别:
将url的参数部分转换成data数据,传递给request。
GET:所有请求参数都显示在url中,不安全
POST:将请求参数转换成NSData数据(二进制码),非常安全
代码如下:
// 1.准备网址
NSURL *url = [NSURL URLWithString:BASE_URL_2];
// 2.创建请求对象
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"]; // 设置请求方式
// 将字符串转换成NSData类型的数据
NSData *paramData = [BASE_URL_2_PARAM dataUsingEncoding:NSUTF8StringEncoding];
// 设置请求参数(data类型)
[request setHTTPBody:paramData];
// 3.使用链接,发送请求,获取数据
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
}];
BASE_URL_2和BASE_URL_2_PARAM的内容
#define BASE_URL_2 @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?"
#define BASE_URL_2_PARAM @"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"