当前位置: 首页 > 知识库问答 >
问题:

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

方光华
2023-03-14

我使用的服务器在HTTP状态消息中返回错误消息。例如,它将返回“400个用户已经存在”,而不是“400个错误请求”。

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

我已经在StackOverflow上发现了这个问题:Swift Alamofire:如何获取HTTP响应状态代码

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

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

共有2个答案

钮高朗
2023-03-14

服务器返回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)")
}

希望这可能对你有所帮助。

向弘懿
2023-03-14

我建议试着打印出你得到的所有可能的数据字段,看看你能找到什么。请尝试下面的示例,看看是否有任何启发。

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)!)")
        }
}
 类似资料:
  • 问题内容: 我正在尝试使用进行同步请求。我查看了Stackoverflow并发现了这个问题:使异步alamofire请求成为sync 我看到接受的答案用于使请求同步,但是我无法使其正常工作。这是我的简化代码: 有了这段代码,我在尝试制作时会出错。我收到的错误如下: 无法调用非功能类型“布尔”的值 我尝试使用许多使用完成的示例来同步获取值(因为我需要先检索数据才能将其显示在表上,并同时获取该表的行数

  • 问题内容: 如何检索请求的响应标头?以下是我提出的要求。 提前致谢! 问题答案: 如果响应为类型,则可以从获取标头。 因此,当您使用Alamofire responseJSON时,可以像这样访问NSHTTPURLResponse属性: 正如苹果文件所说: 包含所有HTTP标头字段的字典,该字段作为服务器响应的一部分收到。通过检查此词典,客户端可以看到HTTP服务器返回的“原始”标头信息。 该词典中

  • 有没有一种方法来检测响应与Alamofire 4?我发现Alamofire总是200,即使服务器响应304。 网络呼叫设置: Alamofire响应报头 服务器响应

  • 我们的堆栈使用主干作为客户端应用程序,使用Spring Boot作为RESTful API。 我们尝试使用OAuth2进行基本身份验证,用户提供用户名和密码。 我们使用Spring Security进行身份验证,使用jQuery$. ajax方法进行请求。但是,在我们甚至可以使用带有我们的秘密的POST标头进行授权之前,我们得到的响应是预飞行OPTIONS请求的401(未授权)状态。但是,我们可以

  • 问题内容: 似乎只有在ajax请求能够从服务器获得某些响应时,才会触发成功,错误和完整的回调。 因此,如果我关闭服务器,则不会执行以下错误回调,并且请求将以静默方式失败。 当根本无法访问服务器时,抛出错误的最佳方法是什么。 编辑-从我尝试过的内容来看,似乎jQuery的内置错误处理不适用于JSONP或dataType:“ script”。因此,我将尝试设置手动超时。 编辑-做了一些进一步的研究,看

  • 问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写​​内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul