解决Alamofire库在iOS7下设置Head无效的问题
同样的代码在iOS8下没有问题,iOS7就取不到数据(会包CocoaError3840之类的错误),跟踪发现请求Head参数设置不管用,根据文字底部的参考改了一下兼容代码:
代码 privatefuncgetRequest(method:Method,_URLString:URLStringConvertible,parameters:[String:AnyObject]?=nil)->NSMutableURLRequest{ letrequest=NSMutableURLRequest(URL:NSURL(string:URLString.URLString)!) request.HTTPMethod=method.rawValue ifparameters!=nil{ request.HTTPBody=NSJSONSerialization.dataWithJSONObject(parameters!,options:nil,error:nil) } request.setValue(API_UA,forHTTPHeaderField:"User-Agent") request.setValue(HEADER_ACCEPT,forHTTPHeaderField:"Accept") request.setValue("application/json",forHTTPHeaderField:"Content-Type") returnrequest }
这里API_UA和HEADER_ACCEPT更改为自己的Head参数即可,使用代码:
varrequest:Request! ifDeviceUtils.isIOS7(){ request=mHttpManager.request(getRequest(method,URLString,parameters:parameters)) }else{ request=mHttpManager.request(method,URLString,parameters:parameters,encoding:ParameterEncoding.JSON) } //request.responseJSON....
代码说明:
a)、mHttpManager就是Manager.sharedInstance,注意别忘了设置mHttpManager.session.configuration.HTTPAdditionalHeaders,在iOS8下还是管用的
参考:
SettingCustomHTTPHeadersinAlamofireiniOS7notworking(参考帖子,也尝试设置NSURLSessionConfiguration但是没有效果)
以上就是对Alamofire库在iOS下设置Head的资料整理,希望能帮助开发IOS软件的同学。