WP_Http重定向后获取最终目标(WordPress)

时间:2011-04-21 09:08:56

标签: wordpress

我正在通过WordPress向API发出一些请求,如果在API设置中打开API,则API会使用SSL连接。我想确定SSL是否已打开或关闭,而无需询问用户是否在其帐户中启用了SSL,并且API在重定向方面做得很好,这意味着

现在我想做的是查看重定向是否发生,并将其记录到我的选项中,以便将其他请求触发到正确的URL而不进行任何重定向。

所以我的问题是:在重定向请求时,有没有办法在触发WP_Http->request()后确定最终目的地?

我在响应数组中看不到有关它的任何信息,我只能看到最终的响应,但我不知道来自哪个URL。我可以做的是将redirection参数设置为0并捕获允许的最大重定向错误,但这不是防弹,因为我仍然不知道重定向是从http发送到https还是仅仅是另一个页面HTTP。

我希望这一切都有意义,如果您有任何想法,请告诉我。

谢谢!

~K

2 个答案:

答案 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']进行比较。如果它不同,那么你知道它被重定向。