欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

解决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软件的同学。

上一篇:

下一篇: