移动端 iOS 与后台进行联调的检查清单
0、缘起
这周和后台进行联调,不是我这边出一点问题,就是后台出点问题。
很多时候,都是看起来很弱智的问题。
尽管这些问题,在调试成功之后,大家都会觉得是小问题。就好像,那些总是考试得99分的同学,从来不会认真去想想自己那一分到底错在哪里?
所以,我打算把这些我自己经常犯的傻逼错误记录下来。作为一个检查清单,作为下次联调的执行套路。
主要针对前端检查。
1、检查路线
1、检查自己的URL是否,拼接错误。这一条,可以使用postman,向后台发出请求。一检查就知道了。
2、postman成功后,对照检查自己的URL,特别是检查参数的格式。
3、如果检查完毕之后,还是无法从后台得到数据。
大概可以这样排查:
1、环境问题
问清楚后台,现在的后台到底是线上环境还是测试环境?这一点,经常会坑死人。因为,信息沟通不充分。完全可能耗费几个小时在上面。一点不夸张。我不止一次在这上面犯错。尽管事后都骂自己是个傻子。
2、WiFi问题
线上环境,一般是外网可以访问的。测试环境,一般只有公司内部的WiFi可以访问。
但手机本身是不会识别的。所以在测试之前,最好检查一下WiFi。
有的公司真的很奇葩。有的WiFi,两个环境都能访问,有的只能访问一个环境。
痛苦的事,很多时候,WiFi改变了访问权限还不周知。。。所以,也要检查一下。
3、账号问题
很多APP都是需要登录进行测试的。
线上环境和测试环境的账号肯定是不一样的。
注意不要用错。
2、参数格式问题
对于网络请求,处理最多的就是POST请求。
对于参数的传递,也基本都是使用组装的 NSDictionary。
毕竟,字典的结构和JSON是一样的。
偶尔会出现一些不一样的情况。
例如:
参数是这个样子:
@{
@"catalog" : catalog,
@"info" : info对象
}
info 对象肯定也是一个字典。
我采取常规 NSDictionary 的方式,传递参数的时候。
网络请求总是失败。
所以换了另外一种方式。把 info对象,转换成 JSON字符串。使用方法如下:
NSError *parseError = nil;
//info 就是字典
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:info options:NSJSONWritingPrettyPrinted error:&parseError];
NSString *str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
最后参数变成:
@{
@"catalog" : catalog,
@"info" : str //已经是JSON字符串
}
和这相似的还有数组数据的上传。
参见:post一个数组给服务器
3、小结
尽管很多小的问题,看起来都很不起眼。
但正是这些看起来有点弱智的问题,会白白让人浪费许多时间。
希望,留给自己和大家一些借鉴。