网络请求编码
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSession *session = [NSURLSession sharedSession];
请求中的url如果存在中文或者特殊符号就需要编码,(特殊符号 &%和空格等)
URL encoding分为两个步骤:
- 获取字符对应的16进制数字。比如”:” UTF-8对应的10进制是58,16进制是3A,所以这一步”:”得到”3A”。
- 在Step1的结果前面加”%”,这一步得到”%3A”。
编码一般使用stringByAddingPercentEncodingWithAllowedCharacters,使用这个方法必须传入NSCharacterSet对象
NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString: url1 ] invertedSet ];
NSString *encodedUrl = [url1 stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
返回数据解码
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError *