网络知识点(一)

网络02

  1. 网络请求的两种形式

第一种不能设置网络请求的信息(缓存策略,超时时间,可以放在请求头里面)

常见的缓存策略

默认

NSURLRequestUseProtocolCachePolicy = 0,

忽略本地的缓存

NSURLRequestReloadIgnoringLocalCacheData = 1,

NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,

返回数据如果没有缓存就去加载

NSURLRequestReturnCacheDataElseLoad = 2,

返回数据如果没有缓存就不去加载

NSURLRequestReturnCacheDataDontLoad = 3,

NSData 简单同步的方式获取数据,但是不能自定义请求等信息//    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"];

NSData *data = [NSData dataWithContentsOfURL:url];

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);

第二种请求方式

SURL *url = [NSURL URLWithString:@"http://127.0.0.12/demo.json"]

//设置请求头信息,请求必须使用可变的

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:3];

//User-Agent: iPhone

[request setValue:@"iPhone" forHTTPHeaderField:@"User-Agent"];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

if(connectionError){

NSLog(@"conn error");

return;

}

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);

}];

2.常见的json解析

NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

//网线连接错误

if(connectionError){

NSLog(@"conn error");

return;

}

//服务器的错误

//判断服务器是否有错,状态码

NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

if(httpResponse.statusCode == 200 || httpResponse.statusCode == 304){

//成功

//            NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

//            NSLog(@"%@",string);

//网络上传世的都是二进制,反序列化就是从二进制转变成对象

id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];

NSLog(@"%@",obj);

}else{

NSLog(@"服务器内部错误");

}

}];

3.将乱码转化为中文

(导入一个类扩展文件)#import "NSArray+Log.h"

文件的具体内容

@implementation NSArray (Log)

- (NSString *)descriptionWithLocale:(id)locale

{

NSMutableString *strM = [NSMutableString stringWithString:@"(\n"];

[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

[strM appendFormat:@"\t%@,\n", obj];

}];

[strM appendString:@")"];

return strM;

}

@end

@implementation NSDictionary (Log)

- (NSString *)descriptionWithLocale:(id)locale

{

NSMutableString *strM = [NSMutableString stringWithString:@"{\n"];

[self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

[strM appendFormat:@"\t%@ = %@;\n", key, obj];

}];

[strM appendString:@"}\n"];

return strM;

}

@end

4.josnkit的使用

第一导入头文件#import "JSONKit.h"

第二:添加键值对

第三:id object =  [[JSONDecoder decoder] objectWithData:data];

5.重新写模型的desc方法

//<CZMessage: 0x7fc7c1522cc0>

-(NSString *)description{

return [NSString stringWithFormat:@"%@ {message=%@,messageId=%d}",[super description],self.message,self.messageId.intValue];

}

6.plist的解析

//<CZMessage: 0x7fc7c1522cc0>

-(NSString *)description{

return [NSString stringWithFormat:@"%@ {message=%@,messageId=%d}",[super description],self.message,self.messageId.intValue];

}

7. id object =  [NSPropertyListSerialization propertyListWithData:data options:0 format:0 error:NULL];

8. -(void)setValue:(id)value forUndefinedKey:(NSString *)key{}

9.一般reload数据可以放在数值的set方法里面

10.遍历数组,采用block进行遍历

//遍历,字典转模型

[array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

CZNews *news = [CZNews newsWithDictionary:obj];

[mArray addObject:news];

}];

11.是能够添加refresh Control的方法未找到

设置的信息refresh Control

//设置刷新的颜色

[self.refreshControl setTintColor:[UIColor redColor]];

//设置文字的颜色

NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"loading" attributes:@{NSForegroundColorAttributeName:[UIColor blueColor]}];

[self.refreshControl setAttributedTitle:attrString];

在加载完数据的时候讲refresh Control去掉

[self.refreshControl endRefreshing];

12,使用SD的步骤

#import "UIImageView+WebCache.h"

[self.iv_img sd_setImageWithURL:[NSURL URLWithString:model.img]];

13. //Xcode7之后可能不会刷新,需要手动刷新

[self.lb_title layoutIfNeeded];

14. //判断title是否一行显示,如果超出一行,summary不显示

CGFloat stringWidth = [self.model.title sizeWithAttributes:@{NSFontAttributeName:self.lb_title.font}].width;

CGFloat labelWidth = self.lb_title.frame.size.width;

if(stringWidth > labelWidth){

self.lb_summary.hidden = YES;

}else{

self.lb_summary.hidden = NO;

}

15.关键掌握通过字符串获取长度

CGFloat stringWidth = [self.model.title sizeWithAttributes:@{NSFontAttributeName:self.lb_title.font}].width;

16.关于注册的问题

collectionView一般都是要注册的,除非使用原型的cell

nib以及使用class的注册,不用判断缓存池里面是否有cell

tableVIEW注册也不用判断cell缓存池

原型用长的方法

自定义class使用短的方法

时间: 2024-10-11 05:22:33

网络知识点(一)的相关文章

【网络知识点】防火墙主备冗余技术

[网络知识点]防火墙主备冗余技术 本文以思科Failover技术为主备冗余技术,华为方面的主备冗余技术为VRRP+HRP,可自行查看华为相关配置资料,实际实现上两者没什么区别,只是实现原理上有点差别,华为做相互主备A/A会更容易些,如果思科做相互主备A/A需要用到多模式虚拟技术,较复杂一点. A/S模式: 实验环境: 通过GNS3模拟搭建,防火墙镜像为pix804.bin,路由器为c3640-jk9o3s-mz.124-10a.bin,交换机为c3640-jk9o3s-mz.124-10a.bi

网络知识点大杂烩

本文是个大杂烩,集中记述个人平时学习或遇到的关于网络的知识点. SYN Flood 我们先来看一下TCP/IP三次握手的过程: 1)Host A 发送一个TCP SYNchronize 包到 Host B 2)Host B 收到 Host A的SYN 3)Host B 发送一个 SYNchronize-ACKnowledgement 4)Host A 接收到Host B的 SYN-ACK 5)Host A 发送ACKnowledge 6)Host B 接收到ACK 7)TCP socket 连接

【网络知识点】网络基本架构

最近都在整理系统相关知识,网络方面的知识还没有开始整理,但赶紧网络这分类有点空,今天就分享一下网络的基础知识--网络基本架构 网络基本架构算是最最最基础的知识点,对于这个基本架构,叫法可能有出入,但大致的划分层次是走不掉的,理解这个基本架构是学习网络的前提. 全球视图: 其中:WAN:广域网,在这里代表一个国家级区域.LAN:局域网,在这里代表一个城市级区域 国家视图: 其中:ISP代表网络服务提供商,用户通过其接入网络,ISP也有分级. 机房视图(核心视图,运维的主要视图): 解读: 接入层(

网络知识点小结

1. 域名服务的工作流程: 2. NAT虚拟网络配置 3. 桥接和仅主机模式配置

网络知识点拾遗

一 各种以太网的速度与等级 名称 速度 网线等级 以太网(Ethernet) 10Mbps - 快速以太网(Fast Ethernet) 100Mbps CAT 5 G比特以太网(Gigabit Ethernet) 1000Mbps CAT 5e/CAT 6 二 交叉线与直连线 交叉线:一边是568A,一边是568B的接头时称交叉线,用在直接连接两台主机的网卡. 直连线:两边接头同为568A或568B时称为直连线,用在连接主机网卡与集线器之间的线缆. 三 自动分辨网线的交叉或直连接口(Auto

【网络知识点】高级交换技术

高级交换技术 本文将通过实验展示高级交换技术里面关键知识点,主要以实际配置&关键注意点为主,其基础概念不会作解释.   实验环境: GNS3,三层交换机使用C3640+交换接口模拟,二层交换机使用C3640+交换接口+关闭路由功能模拟,主机使用C7200+关闭路由功能模拟   包含技术: 基础交换技术 高级交换防环:MSTP 高级交换冗余:网关冗余技术-HSRP 基础路由技术,OSPF基础配置 最终实现: VLAN间能相互通信:VLAN10流量走R4-R2-R1主路线,备用路线R4-R3-R1,

网络知识点

一.一个HTTP请求的基本要素 1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据 *比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据 *一般是JSON数据或者XML数据 二.基本的HTTP请求的步骤(移动客户端) 1.拼接“请求URL”+“?”+“请求参数” *请求参数的格式:参数名=参数值 *多个请求参数之间用&隔开:参数名1=参数值1&参数名2=参数值2.... 2.发送请求 3.解析服务器返回的数据

简单网络知识点

12.MAC地址lMAC地址也就是通常所说的网卡物理地址或硬件地址. lMAC地址为48比特,常用十六进制表示为6个字节,是不能更改的地址.l其中前2 4位二进制代表该供应商代码.剩下的24位由厂商自己分配的序列号.如果48位全是1,则表明该地址是广播地址. (FF-FF-FF-FF-FF-FF)13.UTP 非屏蔽双绞线STP 屏蔽双绞线14.lT568B:橙白.橙.绿白.蓝.蓝白.绿.棕白.棕 lT568A: 绿白.绿.橙白.蓝.蓝白.橙.棕白.棕15.三种不同的接线方法:直通线.交叉线.全

500VIP源码出售前后端均适用的网络知识点

http 响应常见状态码100-199 : 表示成功接收请求, 要求客户端继续提交下一次请求才能完成整个处理过程500VIP源码出售bbs.yasewl.com200-299: 表示成果接收请求并已完成整个处理过程. 常用 200300-399: 为完成请求, 客户需进一步细化需求: 例如: 请求的资源已经移动一个新地址, 常用 302(重定向), 307 和 304(拿缓存)400-499: 客户端的请求有错误, 包含语法错误或者不能正确执行. 常用 404(请求的资源在 web 服务器中没有