美文网首页
网络协议

网络协议

作者: 江湖闹士 | 来源:发表于2020-10-23 07:45 被阅读0次

网络请求分为4类:
GET同步请求
GET异步请求
POST同步请求
POST异步请求

GET请求接口
接口:http://api.map.baidu.com/place/v2/search?query=酒店&region=郑州&output=json&ak=6E823f587c95f0148c19993539b99295

POST请求接口
接口:http://api.tudou.com/v3/gw
参数:method=album.channel.get&appKey=myKey&format=json&channel=t&pageNo=1&pageSize=10

GET请求大图片
http://image.zcool.com.cn/56/13/1308200901454.jpg

同步网络请求步骤:

1:创建网址字符串对象

NSString *urlStr = [NSString stringWithFormat:@“ http://api.map.baidu.com/place/v2/search?query=%@&region=%@&output=json&ak=6E823f587c95f0148c19993539b99295",@"网吧",@"北京"];

2: (选择性实现)如果网址字符串对象中存在中文,需要将中文转换成URLEncode

urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

3:创建网址链接对象

NSURL *url = [NSURL URLWithString:urlStr];

4:创建请求对象(请求方式:约定的传输方式。链接:开始真正进行数据传输)

NSURLRequest *request = [[[NSURLRequest alloc] initWithURL:url] autorelease];

(1)同步链接时:

5:建立链接

NSURLResponse *response = nil;//储存服务器的返回信息
NSError *error = nil;//存储请求失败的信息
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

6:数据解析

NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

7:提取数据

NSMutableArray *dataArr = [dataDic objectForKey:@"results"];
for (NSDictionary *dataDic in dataArr) {
        //创建商家对象,这个需要Shopper类,并且定义属性和方法在这使用(在这里这不是重点,只是引用)
        Shopper *shopper = [[Shopper alloc] initWithDic:dataDic];
        [self.shoppers addObject:shopper];
        NSLog(@"%@",self.shoppers);
        [shopper release];
    }

8:展示数据(对数据的更新)

[self.tableView reloadData];

(2)异步链接时:

5:创建子线程

NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        //6:数据解析
 NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        //7:提取数据
        NSMutableArray *dataArr = [dataDic objectForKey:@"results"];
        for (NSDictionary *dataDic in dataArr) {
            //创建商家对象,这个需要Shopper类,并且定义属性和方法在这使用(initWithDic方法如下同颜色部分)
            Shopper *shopper = [[Shopper alloc] initWithDic:dataDic];
            [self.shoppers addObject:shopper];
            [shopper release];
        }
        //8:将界面展示提交给程序的主队列
        dispatch_async(dispatch_get_main_queue(), ^{
            //9:展示数据(对数据的更新)
            [self.tableView reloadData];
        });
    }];

//********************************************
- (id)initWithDic:(NSDictionary *)dataDic {
    self = [super init];
    if (self) {
        self.name = dataDic[@"name"];
        self.address = dataDic[@"address"];
    }
    return self;
}
//***********************************************

相关文章

  • 名词解析

    网络层:IP协议 : 网络协议ICMP协议: Internet互联网控制报文协议 ->IP协议的附属协议 IP...

  • Http网络协议包

    1.网络协议包: 2.常见网络协议: 3.Http网络协议包: 4.Http请求协议包与Http响应协议包介绍: ...

  • 网络传输-Socket

    目录 网络基础 Socket 一、网络基础 网络协议 网络协议是互联网进行数据交换的标准,通过实现网络协议达到与互...

  • 基本原理

    什么是协议? 网络协议:规定网络双端如何通信。

  • 网络协议

    网络协议 网络七层协议 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP/IP五层模型的协议 应...

  • 网络协议

    网络协议 网络的五层划分是什么? 应用层,常见协议:HTTP、FTP 传输层,常见协议:TCP.UDP 网络层,常...

  • 网络协议

    1:OSI 模型七层协议, 另也可以五层协议即 一用层,表现层与会话层 统称为 应用层。 2:信息格式 很明显通过...

  • 网络协议

    最早的 TCP 协议文档是 RFC793。 TCP 提供一种面向连接的、可靠的字节流服务。 面向连接容易理解,那么...

  • 网络协议

    TCP/IP协议 互联网协议(英语:Internet Protocol Suite,缩写IPS)[1]是一个网络通...

  • 网络协议

    互联网协议是以分层管理的,但是在有些地方看到是五层管理,但是在图解http书中看到的网络协议是四层,到底是五层还是...

网友评论

      本文标题:网络协议

      本文链接:https://www.haomeiwen.com/subject/gzfpmktx.html