【问题标题】:Get HTTP Status-Line in Alamofire在 Alamofire 中获取 HTTP 状态行
【发布时间】:2023-04-09 11:39:01
【问题描述】:

我在 swift 3 中使用 Alamofire 4.0.1 库;我正在寻找 HTTP 状态行(如 https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html 中所述)。我可以获取状态码、标题、所有内容,但不能获取状态消息。

我正在查询一个 REST API,它在描述问题的“禁止”关键字之后给了我 403 条不同消息的响应:比如客户端未获准访问或不允许访问特定 URL,因为它是用于内部仅使用。在我的客户端访问 API 时,我想为用户提供更多详细信息,而不仅仅是“禁止”消息。

这是服务器发回的内容(我知道这一点是因为我使用了 Paw,一个 HTTP 客户端来发送 HTTP 请求并调查响应):

HTTP/1.0 403 Forbidden(内部方法)

所以总结一下,有没有机会在 Alamofire 中获得 HTTP 状态行?

【问题讨论】:

  • 使用状态行传递错误消息非常罕见(我从未听说过)。使用 403 并在响应正文中、JSON 对象或任何对您有意义的格式中包含消息会更常见。
  • 感谢您的意见,我已将反馈转发给 API 所有者。

标签: ios swift alamofire


【解决方案1】:

很遗憾没有

Alamofire 使用 URLResponse 并且它没有实现任何为您提供有关 Status-Line 信息的字段/方法。要获得Status-Line,您应该使用其他可能较低级别的框架。

URLResponse 只为您提供有关allHeaderFields 的信息,您可以在这里查看我的回答:

https://stackoverflow.com/a/36524454/5433235

【讨论】:

猜你喜欢
  • 2021-03-15
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多