【问题标题】:wp_remote_get fails with "Failure when receiving data from the peer"wp_remote_get 失败并显示“从对等方接收数据时失败”
【发布时间】:2014-11-08 12:05:09
【问题描述】:

我正在尝试使用以下内容获取文件的文件内容:

$google_fonts = (array)wp_remote_get( THEME_ADMIN_URI.'/google_fonts.txt' );

var_dump($google_fonts); 上打印:

array(2) {
    ["WP_Errorerrors"]=> array(1) { 
        ["http_request_failed"]=> array(1) { 
            [0]=> string(41) "Failure when receiving data from the peer" 
        }
    }
    ["WP_Errorerror_data"]=> array(0) { }
}

这是我第一次看到这个。我正在执行外国服务器和 WP 安装的支持任务,因此我的访问权限有限,尤其是对 php 和服务器设置。 路径很好,在我的服务器和本地主机上,它工作正常。 文件可以直接在浏览器中访问。

如果我尝试基于本地目录而不是域使用file_get_contents(),它可以工作。

你知道是什么原因造成的吗?

【问题讨论】:

  • 你能直接访问那个 URI 吗?
  • @rnevius 是的,我可以。
  • 听起来你被防火墙了...我会尝试在你的 wp_config.php 中添加一个define('ALTERNATE_WP_CRON', true);
  • @rnevius 我做了,但没有帮助。我已经编辑了问题, file_get_contents() 确实返回成功。不过,我想使用 wp_remote_get() 因为它是更好的做法,对吗?

标签: php wordpress httprequest


【解决方案1】:

当被请求的域使用 CloudFlare 时,我已经看到 wp_remote_get() 失败 - 关于 CloudFlare 如何使用 SSL 混淆 wp_remote_get() 并且当 SSL 证书(在站点上和 CloudFlare 内部)正确显示时请求出错配置好了。

【讨论】:

  • 您找到了解决方案/解决方法?我有一个在 WP 中运行 WooCommerce 的站点,并且“wp_remote_get”在轮询他们的测试端点时返回服务器 500 响应:woothemes.com/wc-api/product-key-api?request=ping&network=0,但在其他 url 上有 200 个响应。 Woo url 服务器名称被列为“cloudflare-nginx”顺便说一句。
猜你喜欢
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2018-02-19
相关资源
最近更新 更多