我正在通过WordPress向API发出一些请求,如果在API设置中打开API,则API会使用SSL连接。我想确定SSL是否已打开或关闭,而无需询问用户是否在其帐户中启用了SSL,并且API在重定向方面做得很好,这意味着
现在我想做的是查看重定向是否发生,并将其记录到我的选项中,以便将其他请求触发到正确的URL而不进行任何重定向。
所以我的问题是:在重定向请求时,有没有办法在触发WP_Http->request()
后确定最终目的地?
我在响应数组中看不到有关它的任何信息,我只能看到最终的响应,但我不知道来自哪个URL。我可以做的是将redirection
参数设置为0并捕获允许的最大重定向错误,但这不是防弹,因为我仍然不知道重定向是从http发送到https还是仅仅是另一个页面HTTP。
我希望这一切都有意义,如果您有任何想法,请告诉我。
谢谢!
~K
答案 0 :(得分:1)
检查$ response ['headers'] - 它们可能包含'location'键。
这完全取决于您使用的HTTP库。 请参阅class-http.php(wp 3.0.1)文件: 第1393行,http_api_curl动作 - 卷曲句柄可直接捕获任何内容。
的fopen: 检查行887-888和$ http_response_header变量。
另外,尝试覆盖processHeaders函数,因为它可以访问原始http头。
答案 1 :(得分:0)
WP_Http类处理标题并删除除最后一个之外的所有标题。所以你可以做上面描述的喷射机。检查原始网址,并将其与返回的$ response ['headers'] ['location']进行比较。如果它不同,那么你知道它被重定向。