如何检索使用Alamofire发出的请求的状态消息?

时间:2015-05-08 23:10:19

标签: swift alamofire

我正在使用的服务器在HTTP状态消息中返回错误消息。例如,它将返回" 400用户已存在"而不是" 400 Bad Request"。

我想访问字符串"用户已存在"在Alamofire调用的响应方法中。但是,我找不到任何方法来访问此字符串。

我已经在StackOverflow上找到了这个问题:Swift Alamofire: How to get the HTTP response status code

不幸的是,没有人回答这个问题。 :(

以下是Chrome显示错误的位置:

Status message

2 个答案:

答案 0 :(得分:2)

我建议您尝试打印出所有可能的数据字段并查看可以找到的内容。请尝试以下示例,看看是否有任何消息。

let URL = NSURL(string: "your/url/to/somewhere")!
let parameters = ["foo": "bar"]

Alamofire.request(.POST, URL, parameters: parameters)
    .response { request, response, data, error in
        println("Request: \(request)")
        println("Response: \(response)")
        println("Error: \(error)")

        if let data = data as? NSData {
            println("Data: \(NSString(data: data, encoding: NSUTF8StringEncoding)!)")
        }
}

答案 1 :(得分:0)

从服务器返回json格式的响应,然后我认为您将能够获得适当的状态。

我已经使用php codeigniter ...从我的响应就像

那样实现了这个东西
 $response['status'] = 'user_already_exists'; 
 $this->response($response, 400);

现在,你可以随时使用

Alamofire.request(.POST,URL, parameters:parameters) .responseJSON
{
            (request, response, data, error) in

            var json = JSON(data!) //I've used swiftyJSON for reading json response
            let status = json["status"].stringValue
            println("Status : \(status)")
}

希望这可以帮助你。