网络数据请求
2015-08-18 17:04
495 查看
<span style="font-family: Arial, Helvetica, sans-serif;"> NSString *strURL = @"http://api.map.baidu.com/place/v2/search?query=银行®ion=大连&output=json&ak=6E823f587c95f0148c19993539b99295";</span>
// 一个正常的URL地址不允许有中文,只有26个英文字母的大小写,数字和一些特殊符号如$,%,如果遇到带中文的URL地址,首先要进行编码 NSString *strEncode = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@", strEncode); // URL地址符合要求后,开始进行网络请求 // 1.跟据已经编码的URL创建一个NSURL NSURL *url = [NSURL URLWithString:strEncode]; // 2.发送一个请求 NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url]; // 3.返回我们要的数据,一个NSDdata对象 // 第一个参数是请求 // 第二个参数是返回的一个响应 // 第三个参数是错误信息 NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; // 解析数据 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSArray *array = dic[@"results"]; for (NSDictionary *dic in array) { NSLog(@"%@", dic[@"name"]);// 异步GET请求
NSString *strURL = @"http://img4.duitang.com/uploads/item/201207/28/20120728105310_jvAjW.thumb.600_0.jpeg"; NSURL *url = [NSURL URLWithString:strURL]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 通过代理的方式进行异步操作 [NSURLConnection connectionWithRequest:request delegate:self]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { // 只要接收到服务器返回的响应信息,就会走这个方法,我们在这个方法里需要对接收数据的容器data进行初始化设置 self.data = [NSMutableData data]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { // 只要返回数据,就会走这个协议方法 // append是累加的意思 [self.data appendData:data]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { // 整个请求结束,需要把返回的data对imgView的image进行赋值 self.imgView.image = [UIImage imageWithData:self.data]; }// 异步POST请求
NSString *strURL = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"; // 1.创建一个URL NSURL *url = [NSURL URLWithString:strURL]; // 2.创建一个request请求 NSMutableURLRequest *reuqest = [NSMutableURLRequest requestWithURL:url]; // 3.设置request请求方式 [reuqest setHTTPMethod:@"POST"]; // 4.创建body字符串 NSString *bodyStr = @"date=20131129&startRecord=1&len=30&udid=1234567890&terminalType=Iphone&cid=213"; // 5.将body字符创转换成data NSData *data = [bodyStr dataUsingEncoding:NSUTF8StringEncoding]; // 6.将body放到request中 [reuqest setHTTPBody:data]; // 7. // 网络请求在子线程里进行请求,请求下来的数据通过控件作为载体实现出来,需要把数据在子线程里显示,第二个参数就是指定把数据返回到哪个线程 [NSURLConnection sendAsynchronousRequest:reuqest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 参数的data就是请求下来的数据,解析就在block中进行 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSArray *array = dic[@"news"]; for (NSDictionary *dic in array) { NSLog(@"%@", dic[@"title"]); } }];
// 异步GET通过block方式
NSString *str = @"http://img4.duitang.com/uploads/item/201207/28/20120728105310_jvAjW.thumb.600_0.jpeg"; // 1.创建url NSURL *url = [NSURL URLWithString:str]; // 2.发送请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 3.异步 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { self.imgView.image = [UIImage imageWithData:data]; }];
// 同步GET请求
NSString *strURL = @"http://api.map.baidu.com/place/v2/search?query=银行®ion=大连&output=json&ak=6E823f587c95f0148c19993539b99295";
// 一个正常的URL地址不允许有中文,只有26个英文字母的大小写,数字和一些特殊符号如$,%,如果遇到带中文的URL地址,首先要进行编码
NSString *strEncode = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@", strEncode);
// URL地址符合要求后,开始进行网络请求
// 1.跟据已经编码的URL创建一个NSURL
NSURL *url = [NSURL URLWithString:strEncode];
// 2.发送一个请求
NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url];
// 3.返回我们要的数据,一个NSDdata对象
// 第一个参数是请求
// 第二个参数是返回的一个响应
// 第三个参数是错误信息
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
// 解析数据
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = dic[@"results"];
for (NSDictionary *dic in array) {
NSLog(@"%@", dic[@"name"]);// 同步POST请求
NSString *strURL = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";
NSURL *url = [NSURL URLWithString:strURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// 把请求方式设置成POST,默认是GET
[request setHTTPMethod:@"POST"];
// 把请求的内容放到request的body中
NSString *bodyStr = @"date=20131129&startRecord=1&len=30&udid=1234567890&terminalType=Iphone&cid=213";
// 需要把请求部分的字符串编程NSData类型的对象
NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
// 把bodyData放到request中
[request setHTTPBody:bodyData];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// json解析
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = dic[@"news"];
for (NSDictionary *dic in array) {
NSLog(@"%@", dic[@"title"]);
相关文章推荐
- Android 应用网络通讯类
- TCP/IP体系结构简介
- 黑马程序员_TCPUDP
- IOS 网络请求中设置cookie
- NSHTTPCookie类详解
- C#网络编程
- Flex HTTPService
- Flex HTTPService
- PHP的一个简单封装的HTTP类
- TCP粘包的拆包处理
- [iOS]导入ASIHttpRequest遇到的问题
- 图解http 学习
- iOS开发系列--网络开发
- 使用HttpSessionListener接口监听Session的创建和失效
- TCP/IP协议学习(二) LWIP用户自定义配置文件解析
- iOS经典网络开源库(整理)
- http://zhongfox.github.io/blog/server/2013/05/12/nginx-var/
- 网络工程师联盟官方QQ群号:219372057
- 常用的网络营销方法有哪些
- TCP控制字段标志:URG、ACK、PSH、RST、SYN、FIN