首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >阿拉莫火自定义报头不起作用

阿拉莫火自定义报头不起作用
EN

Stack Overflow用户
提问于 2016-03-21 02:47:43
回答 3查看 1.1K关注 0票数 0

我试图在Alamofire请求中添加一个自定义头,但是我不认为头被识别了。我仍然收到相同的结果,现在正在得到一个App Transport security错误。我正在添加这里指定的标题-> http://developer.dribbble.com/v1/media/#comment-body-property (删除html并只返回文本)。到目前为止我已经尝试过了。

代码语言:javascript
运行
复制
 let headers = ["Accept": "application/vnd.dribbble.v1.text+json"]
        var manager: Manager = Manager.sharedInstance
        manager.session.configuration.HTTPAdditionalHeaders = headers

        manager.request(.GET, url, parameters: parameters).validate().responseJSON { response in
            switch response.result {
            case .Success:
                if let value = response.result.value {
                    let json = JSON(value)
                }
            case .Failure(let error):
                print(error)
            }
        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-22 03:00:31

您必须向Alamofire传递带有自定义头的NSMutableURLRequest。请查看此问题以获得更好的解释。

代码语言:javascript
运行
复制
        var request = NSMutableURLRequest(URL: NSURL(string: "YOUR URL HERE")!)
        request.HTTPMethod = "GET"
        request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
        request.addValue("application/vnd.dribbble.v1.text+json", forHTTPHeaderField: "Accept")
        //Add paramaters (Optional)
        let param = ["foo": "bar"]
        let encoding = Alamofire.ParameterEncoding.URL
        (request, _) = encoding.encode(request, parameters: param)
        Alamofire.request(request).responseJSON { response in
            //DO SOMETHING WITH YOUR RESPONSE OBJECT
        }

希望这会有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2016-03-21 10:09:14

试试这个:

代码语言:javascript
运行
复制
Alamofire.request(.GET, url, parameters: parameters, headers: ["Accept": "application/json"]).responseJSON() { response in
        switch response.result {
        case .Success:
            if let value = response.result.value {
                let json = JSON(value)
            }
        case .Failure(let error):
            print(error)
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2021-10-10 04:12:26

也许为时已晚,但我相信这可能对其他人有帮助。在我的例子中,我把所有的东西都写得很完美,但是Alamofire并不会发布标题。

经过很长一段时间的尝试,我发现这个问题是我没有用'/‘结束我的URL。因此,当我添加这个标题时,标题就像预期的那样摆出了样子。

不工作:

代码语言:javascript
运行
复制
http://\(baseUrl)/api/chat

,但是这个是有效的:

代码语言:javascript
运行
复制
http://\(baseUrl)/api/chat/

完整代码:

代码语言:javascript
运行
复制
let url =  "http://\(baseUrl)/api/chat/"
let headers: HTTPHeaders = ["Content-Type":"application/json",
                                    "Authorization":"Token 57bbac4b15efb531c62558eb553372a0169d9c2e"]
Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers )
        .responseJSON { response in
            print(response.result.value as Any)
            
            if let json = response.result.value {
                if(response.response?.statusCode == 200){
                    let responseDict = json as! [String : Any]                
                    completion("Success", (response.response?.statusCode)!)
                }
                else
                {
                    completion(nil, (response.response?.statusCode)!)
                }
            }
            else
            {
                let httpError = response.result.error
                let statusCode = httpError!._code
                completion(nil, statusCode)
            }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36122370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档