美文网首页
06-网络(2)

06-网络(2)

作者: cdd48b9d36e0 | 来源:发表于2017-02-17 10:05 被阅读11次

0713JSONXML解压缩

1、模型、字典、JSON(02-json解析01)

网络请求下来的json数据在IOS里以NSData格式返回,这个时候需要转为字典
NSData→字典→模型

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
//然后字典再转为模型
NSObject *model = [YYModel xxxx:dict]

反过来有时候需要上传的参数格式是JSON字符串
字典→NSData→字符串

//这个data实际上就是JSON
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
//这个str就是JSON字符串或者说这里就是将字典转为字符串
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

2、关于+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error的NSJSONReadingOptions三个枚举字的意思(04-json解析03)

  • NSJSONReadingOptions
    • NSJSONReadingMutableContainers = (1UL << 0)
      • 创建出来的数组和字典就是可变
    • NSJSONReadingMutableLeaves = (1UL << 1)
      • 数组或者字典里面的字符串是可变的
    • NSJSONReadingAllowFragments
      • 允许解析出来的对象不是字典或者数组,比如直接是字符串或者NSNumber

3、设计一个框架需要考虑的问题(05-json解析04-字典转模型框架)

  • 侵入性
  • 侵入性大意味着很难离开这个框架
  • 易用性
  • 比如少量代码实现N多功能
  • 扩展性
  • 很容易给这个框架添加新框架

4、XML解析(07-xml解析02-nsxmlparser)


  • NSXMLParser主要是运用那四个代理
  • GDataXML没有集成cocopods,只能手动导入,而且还要在两个地方设置动态库,用的话就是从跟节点一层一层去找

5、const和宏的区别(11-大文件下载)

const修饰的是常量,就是说编译的时候就能确定值的量,宏可以定义变量,由程序运行时再赋值

6、文件的解压缩(13-解压缩02)

基本上用到的是三方框架ZipArchive及其OC封装SSZipArchive

7、上传(14-文件上传01-思路)

上传是最特殊的一种http请求,他的请求体有着特定的格式,下图是一个上传文件和账户名的完整请求体

说明:以两个下划线“--”+自定义字符串开始标志一个文件参数或者非文件参数,以“--”+自定义字符串+“--”标志传参结束,文件参数必须设置Content-Type,期间的空格也一个不能多不能少

一定要设置请求头的Content-Type和MIMEType

[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", XMGBoundary] forHTTPHeaderField:@"Content-Type"];

如何在程序中获得MIMEType(也可在敲代码手动查)

- (NSString *)getMIMEType:(NSString *)file
{
    NSURLResponse *response = nil;
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:file]];
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
    return response.MIMEType;
}

相关文章

  • 06-网络(2)

    0713JSONXML解压缩 1、模型、字典、JSON(02-json解析01) 网络请求下来的json数据在...

  • 06-网络(1)

    0712NSURLConnection 基本概念(01-网络的基本概念) Http是网络数据传输格式,TCP(UD...

  • 06-网络(3)

    0715大文件断点下载AF 1、用nsoutputstream实现文件下载 (02-nsoutputstream...

  • 06-网络(4)

    0716UIWebViewJS转OC离线断点 1、OC调用JS 主要方法就是- (nullable NSStr...

  • 06-网络分层

    网络互连模型1、iso国际标准化组织1985年制定了网络互连模型2、OSI参考模型 open system int...

  • 06-网络请求

    GET和POST请求 get请求会将提交的数据拼接到URL后面例如: ?userName=lnj&userPwd=...

  • UI手势控件

    一、拖拽 示例代码: 复制代码 1 // 2 // YYViewController.m 3 // 06-拖拽事件...

  • 网络复习-笔记06-传输层(2)

    TCP 点对点: 一个发送方,一个接收方 可靠的、按序的字节流 流水线机制: TCP拥塞控制和流量控制机制, 动态...

  • OpenGLES4-地球与月亮

    资源⽂文件 1.viewDidLoad 2.渲染场景 3.切换投影方法(正投影、透视投 影) Demo: 06-地...

  • 06-网络类&加密

    网络七层协议(http,tcp/ip处于哪一层)? http属于应用层协议,基于tcp/ip tcp/ip属于传输...

网友评论

      本文标题:06-网络(2)

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