Post同步异步
来源:互联网 发布:电视怎么看网络电视 编辑:程序博客网 时间:2024/06/10 07:20
//以下使用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"
//代理方法所需要的协议
@interfacePostViewController ()<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:nilerror:nil];
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerializationJSONObjectWithData: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:nilerror:nil];
//解析数据
NSMutableDictionary *dataDic = [NSJSONSerializationJSONObjectWithData:newData options:(NSJSONReadingMutableContainers)error:nil];
NSLog(@"%@",dataDic);
-----------------------------------------------------------------------
Post异步请求
//获取网址对象
NSURL *url = [NSURL URLWithString:kNewsListURL];
//利用网址对象创建一个请求
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:urlcachePolicy:(NSURLRequestUseProtocolCachePolicy)timeoutInterval:10];
//创建标识
//注意:post请求需要添加标识符
[request setHTTPMethod:@"post"];
//给这个请求添加请求体
NSData *data = [kNewsListParamdataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
//利用请求创建一个链接 (异步代理方法)
NSURL *url = [NSURL URLWithString:kNewsListURL];
//利用网址对象创建一个请求
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:urlcachePolicy:(NSURLRequestUseProtocolCachePolicy)timeoutInterval:10];
//创建标识
//注意:post请求需要添加标识符
[request setHTTPMethod:@"post"];
//给这个请求添加请求体
NSData *data = [kNewsListParamdataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
//利用请求创建一个链接 (异步代理方法)
-----------------------------------------------------------------------
#pragma mark -- block方法
[NSURLConnectionsendAsynchronousRequest:requestqueue:[NSOperationQueuemainQueue]completionHandler:^(NSURLResponse * _Nullable response,NSData *_Nullable data,NSError *_Nullable connectionError) {
[NSURLConnectionsendAsynchronousRequest:requestqueue:[NSOperationQueuemainQueue]completionHandler:^(NSURLResponse * _Nullable response,NSData *_Nullable data,NSError *_Nullable connectionError) {
}];
-----------------------------------------------------------------------
self.connection = [NSURLConnectionconnectionWithRequest: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 = [NSJSONSerializationJSONObjectWithData: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 = [NSJSONSerializationJSONObjectWithData:self.receiveData options:(NSJSONReadingMutableContainers) error:nil];
NSLog(@"%@",dataDic);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
}
UI第十六天 16-NSURLRequest
0 0
- get post 同步 异步
- Post同步异步
- 网络请求 同步get 同步post 异步get 异步post
- OC-NSURLConnection-同步get、异步get、同步post、异步post
- ios 同步,异步,get,post
- jquery post 同步异步总结
- Okhttp2同步,异步 get,post
- UIday1604:get同步/异步 和 post同步/异步 编程实现
- 同步异步与post、get简解
- 异步POST请求和同步请求
- iOS同步 异步 get post 请求
- IOS_网络请求_get+post+同步+异步
- GET--POST的同步/异步请求
- IOS 学习 gei post 同步 异步方法
- iOS数据请求之post异步同步
- 42.网络请求POST同步和异步
- 网络编程 同步异步加载 SET POST
- iOS网络请求GET&POST,同步&异步
- 第14周—项目1(4)平衡二叉树
- Android Plug-in for Gradle源码下载
- 读代码大全2——第一章和第二章
- 【PHP7】- 编译安装与新特性初体验
- python 简单爬虫实现
- Post同步异步
- Robocopy用法
- Scala之Tuple、Array、Map与文件操作
- Spring MVC POST中文乱码解决方案
- PHP中的错误
- Linux 下iptables相关配置
- HDU - 1754
- OpenCV相机标定calibrateCamera坐标系详解
- 关于Hibernate一个配置参数hibernate.hbm2ddl.auto