带手动重定向的WP远程GET

时间:2011-03-14 作者:edelwater

我设置

 add_filter( \'http_request_redirection_count\', array($instance,\'SetDirectionCount\'));
至0

我试图得到\'http://boards.ign.com/The_Vestibule/b5296/\'或\'http://www.informationweek.com/story/“但这给了我:

 WP_Error Object ( [errors] => Array ( [http_request_failed] 
 => Array ( [0] => Maximum (0) redirects followed ) ) [error_data] => Array ( ) )
头部未显示重定向:

Array ( [headers] => Array ( [connection] => close [date] => 
Mon, 14 Mar 2011 01:40:19 GMT [server] => Microsoft-IIS/6.0 [p3p] => Array ( [0] =>  
CP=\'NOI ADMa OUR STP\' [1] => CP="TST" ) [x-powered-by] => ASP.NET [cluster-server] => \\      ignprdappw64212 [x-aspnet-version] => 2.0.50727 [pragma] => no-cache [x-aspnetmvc-version] 
=> 1.0 [set-cookie] => BoardCookieV3%5Fboards%2Eign%2Ecom=dc=no&ra=False; expires=Wed,     14-Mar-2012 01:40:19 GMT; path=/; HttpOnly [cache-control] => private [expires] => Wed, 14     
Mar 2001 01:40:19 GMT [content-type] => text/html; charset=utf-8 ) [body] => [response]   =>   
Array ( [code] => 200 [message] => OK ) [cookies] => Array ( [0] => WP_Http_Cookie 
Object ( [name] => BoardCookieV3%5Fboards%2Eign%2Ecom [value] => dc=no&ra=False   
[expires] => 1331689219 [path] => / [domain] => [httponly] => ) ) )
现在。。。我想要的是从head请求返回的信息,即301或302将发生,甚至404,这样我就可以用wp\\u remote\\u来取而代之。

我做错什么了吗?

仅供参考:我需要手动重定向,因为如果HTML源(代码:http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/includes/class-http.php ) 或其他背景:http://wp.leau.co/2011/03/18/handling-redirects-for-wp-favicons-with-redirects-set-to-0-with-wordpress-wp_remote_get/

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

看看WordPress HTTP API,似乎没有简单的方法可以做到这一点。事实上,这甚至可能是要求trac的罚单。

请参见,虽然它允许您指定重定向的最大数量,但没有抽象选项来控制是否应该遵循重定向。

因此,将最大重定向计数设置为0,HTTP API将简单地失败,出现类似“遵循最大重定向”的情况。

目前,您需要检查request 每个HTTP传输类的方法(WP_Http_Curl, WP_Http_ExtHttp...) 并寻找理想的过滤器和操作,您可以使用它们为特定的传输设置“nofollow”选项

进一步检查后,我认为只有API的cURL组件受到影响;

function __set_curl_nofollow( &$handle )
{
    curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, false );  
}
add_action( \'http_api_curl\', \'__set_curl_nofollow\' );
正如我提到的提交给trac,我认为API应该有另一个选项,比如“follow\\u redirection”,它将完成预期的操作-抽象并消除麻烦

Trac ticket 16855

结束

相关推荐

How deactivate the http-api

为它提供一个tipp或解决方案来停用WP\\U Http\\U Streams类中的方法request()?我也在脱机服务器上使用WordPress,并让wp\\U debug true用于开发和测试。但是我从函数中得到了很多关于使用http类的警告;例如,在仪表板中读取提要的函数。目前我已经停用了更新主题、插件、核心和cron的所有挂钩;请参阅我的小插件:https://github.com/bueltge/WP-Offline谢谢你的回复