iOS 遇坑记录

2016-12-28  本文已影响290人  顾泠轩

今天跟小琪吐槽,加请求头好坑的问题。小琪说,觉得坑是因为不懂,懂了就不会觉得坑了。我觉得小琪总结得挺好的。但是毕竟菜,所以总是被一些甚至比较粗浅的问题难住。好在,现在多跳一个坑,以后就少跳一个坑。

所以,尽量先把遇到的坑记录一下,以后也便于查看。

1. 关于最新版AFNetworking(貌似是3.1.0版)添加请求头。

今天碰到的是post请求,接口那边需要raw格式。其实我也没搞明白raw是什么鬼,但是最后的结论是要添加application/json的请求头。

具体操作:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager setResponseSerializer:[AFJSONResponseSerializer serializer]];

[manager setRequestSerializer:[AFJSONRequestSerializer serializer]];

[manager.requestSerializer setValue:@"application/json;charset=utf-8" forHTTPHeaderField:@"Content-Type"];

后面就是正常的manager的post请求就可以了。

[manager POST:@"地址连接" parameters:@"参数" progress:^(NSProgress * _Nonnull uploadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

NSLog(@"请求成功!");

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

NSLog(@"请求失败!");

}];

这里遇到一个坑

manager.requestSerialize = [AFJSONRequestSerializer serializer];

用点语法赋值的时候崩溃在AFN的类里了。

不知道是不是当时还有哪里写错了,有空会再测一下。

2.字典转json (有些请求的参数要求是json类型)

dic:为参数字典

NSData *data1 = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];

NSString * json = [[NSString alloc]initWithData:data1 encoding:NSUTF8StringEncoding];

上一篇下一篇

猜你喜欢

热点阅读