06-网络(2)

2017-02-17  本文已影响11人  cdd48b9d36e0

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)

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

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


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;
}
上一篇 下一篇

猜你喜欢

热点阅读