解决Alamofire库在iOS7下设置Head无效的问题
程序员文章站
2023-12-15 20:20:04
同样的代码在ios8下没有问题,ios7就取不到数据(会包cocoa error 3840之类的错误),跟踪发现请求head参数设置不管用,根据文字底部的参考改了一下兼容代...
同样的代码在ios8下没有问题,ios7就取不到数据(会包cocoa error 3840之类的错误),跟踪发现请求head参数设置不管用,根据文字底部的参考改了一下兼容代码:
代码 private func getrequest(method: method, _ urlstring: urlstringconvertible, parameters: [string: anyobject]? = nil) -> nsmutableurlrequest { let request = nsmutableurlrequest(url: nsurl(string: urlstring.urlstring)!) request.httpmethod = method.rawvalue if parameters != 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") return request }
这里api_ua和header_accept更改为自己的head参数即可,使用代码:
var request: request! if deviceutils.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下还是管用的
参考:
setting custom http headers in alamofire in ios 7 not working (参考帖子,也尝试设置nsurlsessionconfiguration但是没有效果)
以上就是对alamofire库在ios下设置head的资料整理,希望能帮助开发ios软件的同学。