许多公司后台开发都会在网络请求里面加上许多字段:
//获取当前系统版本号
+ (NSString*)getIOSVersion
{
return [NSString stringWithFormat:@"%f",[[[UIDevice currentDevice]systemVersion]floatValue]];
}
//获取当前APP版本号
+ (NSString*)getAPPVersion {
NSString*str = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleShortVersionString"];
return str;
}
//获取当前手机序列号
+ (NSString*)getiphoneUUID {
NSString*UUID = [NSString stringWithFormat:@"%@",[[UIDevice currentDevice]identifierForVendor]];
return UUID;
}
等等
然而许多公司要求请求上传参数为JSON格式也就是 :
AFHTTPSessionManager*manager =[AFHTTPSessionManagermanager];
manager.requestSerializer= [AFJSONRequestSerializer serializer];
但是当请求头和AFJSONRequestSerializer 一起使用的时候就是出现一下情况
在这里我是添加了请求头的 效果如下
当在设置请求头后面设置JSON数据格式就会出现如下情况:
所以当你先添加请求头 再设置manager.requestSerializer= [AFJSONRequestSerializer serializer];是就会出现请求头被干掉的情况!
所以你要添加请求头就必须先设置上传数据格式然后设置请求头 例如:
AFHTTPSessionManager*manager = [AFHTTPSessionManager manager];
manager.requestSerializer= [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"content-type"];
[manager.requestSerializer setValue:@"XXXXX "forHTTPHeaderField:@"XXXXXX"]; 等等