当前位置: 移动技术网 > IT编程>移动开发>IOS > 解决Alamofire库在iOS7下设置Head无效的问题

解决Alamofire库在iOS7下设置Head无效的问题

2019年07月24日  | 移动技术网IT编程  | 我要评论

夜色下的上海滩 txt,孙金龙近况,吕侃

同样的代码在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软件的同学。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网