在Alamofire中获取HTTP状态行

3
我正在使用Alamofire 4.0.1库进行Swift 3编程;我需要HTTP状态行(如https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html中所述)。虽然我可以获得状态码、头信息和其他所有内容,但却无法获取状态消息。
我正在查询一个REST API,该API会返回403响应,而在“Forbidden”关键字之后是不同的消息,用于描述问题:例如客户端未被批准访问或访问特定URL是不允许的,因为它仅供内部使用。在我的客户端中访问API时,我希望向用户提供比“Forbidden”消息更多的细节信息。
以下是服务器返回的内容(我知道这一点,因为我使用了Paw,一个HTTP客户端发送了HTTP请求并调查了响应):
HTTP/1.0 403 Forbidden (internal method)
因此,总之,在Alamofire中是否有任何机会获取HTTP状态行?

在使用状态行传递错误消息方面还是比较少见的(我从未听说过)。更常见的做法是使用403状态码并在响应体中包含一条消息,可以使用JSON对象或任何对你有意义的格式。 - mcfedr
感谢您的反馈,我已将此反馈转发给API所有者。 - rsc
1个回答

1
很遗憾,不行。
Alamofire使用URLResponse,并且它没有实现任何字段/方法来提供有关Status-Line的信息。要获取Status-Line,您应该使用其他可能更低级别的框架。
URLResponse仅提供有关allHeaderFields的信息,您可以在此处查看我的答案:

https://dev59.com/bloV5IYBdhLWcg3wN8rh#36524454


这里有一个类似的问题:http://stackoverflow.com/a/18905087/5433235 - kamwysoc
不是我想听到的,但感谢您确认它不受支持。我需要和那个API的人谈谈 :-) - rsc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接