//
以下使用
post
网址与数据分隔开
#define kNewsListURL @
"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"
#define kNewsListParam @ "date=20131129&startRecord=1&len=30&udid=1234567890&terminalType=Iphone&cid=213"
#define kNewsListParam @ "date=20131129&startRecord=1&len=30&udid=1234567890&terminalType=Iphone&cid=213"
//代理方法所需要的协议
@interface
PostViewController
()<
NSURLConnectionDelegate
,
NSURLConnectionDataDelegate
>
//声明一个链接属性 方便在dealloc中使用
@property
(
nonatomic
,
retain
)
NSURLConnection
*connection;
//声明一个可变data 用于存放数据
@property
(
nonatomic
,
retain
)
NSMutableData
*receiveData;
- (void)dealloc
{
[_connectioncancel];
[_connectionrelease];
[_receiveDatarelease];
[superdealloc];
}
{
[_connectioncancel];
[_connectionrelease];
[_receiveDatarelease];
[superdealloc];
}
-----------------------------------------------------------------------
//Post同步
// 1.创建网址对象(没中文就不必转编码)
NSURL *url = [NSURL URLWithString:kNewsListURL];
// 2.利用网址对象 创建请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];
//设置标识
[request setHTTPMethod:@"Post"];
//把字符串转化成data使用UTF-8的编码格式(携带的请求体)
NSData *data = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding];
//注意区别: post请求可以携带一个请求体
[request setHTTPBody:data];
//创建同步链接
NSData *newData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil error:nil];
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:newData options:(NSJSONReadingMutableContainers) error:nil];
NSURL *url = [NSURL URLWithString:kNewsListURL];
// 2.利用网址对象 创建请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];
//设置标识
[request setHTTPMethod:@"Post"];
//把字符串转化成data使用UTF-8的编码格式(携带的请求体)
NSData *data = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding];
//注意区别: post请求可以携带一个请求体
[request setHTTPBody:data];
//创建同步链接
NSData *newData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil error:nil];
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:newData options:(NSJSONReadingMutableContainers) error:nil];
NSLog(@"%@",dataDic);
-----------------------------------------------------------------------
Post异步请求
//获取网址对象
NSURL *url = [NSURL URLWithString:kNewsListURL];
//利用网址对象创建一个请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];
//创建标识
//注意:post请求需要添加标识符
[request setHTTPMethod:@"post"];
//给这个请求添加请求体
NSData *data = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
//利用请求创建一个链接 (异步代理方法)
NSURL *url = [NSURL URLWithString:kNewsListURL];
//利用网址对象创建一个请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];
//创建标识
//注意:post请求需要添加标识符
[request setHTTPMethod:@"post"];
//给这个请求添加请求体
NSData *data = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
//利用请求创建一个链接 (异步代理方法)
-----------------------------------------------------------------------
#pragma mark -- block
方法
[ NSURLConnection sendAsynchronousRequest :request queue :[ NSOperationQueue mainQueue ] completionHandler :^( NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
[ NSURLConnection sendAsynchronousRequest :request queue :[ NSOperationQueue mainQueue ] completionHandler :^( NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
}];
-----------------------------------------------------------------------
self.connection = [NSURLConnection connectionWithRequest:requestdelegate:self];
[self.connectionstart];
-----------------------------------------------------------------------
#pragma mark --代理方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
//链接成功时创建data
self.receiveData = [NSMutableData data];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//拼接data
[self.receiveData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:self.receiveData options:(NSJSONReadingMutableContainers) error:nil];
NSLog(@"%@",dataDic);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
//链接成功时创建data
self.receiveData = [NSMutableData data];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
//拼接data
[self.receiveData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:self.receiveData options:(NSJSONReadingMutableContainers) error:nil];
NSLog(@"%@",dataDic);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
}
UI第十六天 16-NSURLRequest