如何从 .POST HTTP 请求访问重定向的 URL 响应

Posted

技术标签:

【中文标题】如何从 .POST HTTP 请求访问重定向的 URL 响应【英文标题】:How to access redirected URL response from .POST HTTP request 【发布时间】:2019-01-02 19:49:40 【问题描述】:

我正在尝试连接到支付服务器,它应该将我重定向到另一个 URL,而不是我的代码中的 URL。

所以我使用 Alamofire(.POST 请求)连接到服务器,但我总是输入“HTTP 重定向过多”代码 = 1007 的错误情况

而且我知道服务器应该返回它,我需要的是在我的 xcode 控制台中打印服务器试图将我重定向到的 URL。

我尝试过使用:

print(response.response?.allHeaderFields)

但对输出没有帮助,无法访问重定向的 URL。

let urlString = "http://www.gazdev.tk/php_VPC_3Party_Order_DO.php"
Alamofire.request(urlString, method: .post, parameters: parameters,encoding: JSONEncoding.default, headers: nil).responseJSON 
    response in
    switch response.result 
    case .success:
        print(response.response)
        break
    case .failure(let error):
        print(response.response)
        print(error)
    

我得到这个作为打印声明:

加载失败并出现错误 Error Domain=NSURLErrorDomain Code=-1007 "too many HTTP redirects"

【问题讨论】:

【参考方案1】:

我认为response.response?.url 是你想要的,例如:

AF.request("https://httpbin.org/get").responseJSON  response in
    debugPrint("redirect = \(response.response?.url)")

【讨论】:

以上是关于如何从 .POST HTTP 请求访问重定向的 URL 响应的主要内容,如果未能解决你的问题,请参考以下文章

springsecurity如何保存重定向地址

如何向可能重定向到登录页面的页面发出 POST 请求

如何在获取 post 调用后管理重定向请求

将 POST 请求从一个 REST API 转发/重定向到另一个

从post方法获取数据后如何重定向

AFNetworking 将重定向请求从 GET 更改为 POST