AFNetworking3.0设置请求头问题解决

许多公司后台开发都会在网络请求里面加上许多字段:

//获取当前系统版本号

+ (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"]; 等等

你可能感兴趣的:(iOS开发)