Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
点击本地路由PHP/Wordpress时,仅获取标题,没有有效的正文/响应_Php_Wordpress_Response - Fatal编程技术网

点击本地路由PHP/Wordpress时,仅获取标题,没有有效的正文/响应

点击本地路由PHP/Wordpress时,仅获取标题,没有有效的正文/响应,php,wordpress,response,Php,Wordpress,Response,在这之前,我要说我对Wordpress绝对是新手,所以可能有某种我不知道的配置导致了这种情况(我希望这是一个简单的修复) 最近,我接管了一个规模适中的Wordpress环境,并正在努力跟上Wordpress带来的所有怪癖 出于测试目的,我所做的是修改主机文件,将所有请求重定向到我的生产环境,改为点击本地,以便我可以测试对当前正在生产环境中运行的端点所做的本地更改 例如: 127.0.0.1 api.mywebsite.com 因此,在测试调用我已更新的端点的代码时,我希望它能重新路由到本地版本

在这之前,我要说我对Wordpress绝对是新手,所以可能有某种我不知道的配置导致了这种情况(我希望这是一个简单的修复)

最近,我接管了一个规模适中的Wordpress环境,并正在努力跟上Wordpress带来的所有怪癖

出于测试目的,我所做的是修改主机文件,将所有请求重定向到我的生产环境,改为点击本地,以便我可以测试对当前正在生产环境中运行的端点所做的本地更改

例如:

127.0.0.1 api.mywebsite.com

因此,在测试调用我已更新的端点的代码时,我希望它能重新路由到本地版本

问题是,即使有了这个主机文件更改,出于某种原因,我总是会返回端点的当前版本(现在prod中的版本),并从端点返回有效的“旧”响应

$apiRequest = new WP_Http;

$data = $apiRequest->request(
    'http://localhost/site/data.json',
    array('decompress' => false)
);
但在我的代码中,我手动将其更改为专门命中localhost时,它变得很奇怪:

$data = wp_remote_get('http://localhost/site/data.json'); 
print_r($data);
(我也特别尝试了127.0.0.1)

这个print语句的输出只返回响应的标题,然后“Body”完全为空

这是非常奇怪的,因为如果我只是对路由运行一个cURL,或者只是在本地的浏览器中点击它,我每次都能得到有效的响应,所以在端点本身运行的代码的逻辑肯定不是问题

我已经尝试使用下面的代码来更改运行GET到该端点的方式,但是发生了完全相同的情况,因此我尝试调用该端点的方式似乎没有问题

$apiRequest = new WP_Http;

$data = $apiRequest->request(
    'http://localhost/site/data.json',
    array('decompress' => false)
);
有人知道是否有某种Wordpress项目设置可能导致这种情况吗?例如覆盖将所有prod流量重定向到本地的my hosts文件更改

我以前从未遇到过这样的情况,到目前为止,我调试它的尝试完全没有用

我在这里重申一下我的情况,我试图通过点击prod环境并让我的主机文件将我重定向到本地版本来测试我对生产端点所做的本地更改,但这看起来像是我的Wordpress配置(或其他)总是试图将我重新路由回端点的当前prod版本,从而得到未更新的响应

然后,如果我试图在代码中明确指出要命中端点的本地版本,那么在“body”中根本没有得到响应。(以下示例):


非常感谢您的帮助

上面没有提到,但我假设您已经将虚拟主机添加到本地web服务器?没有,我没有,这里有什么优势?抱歉,您的域名指向了您的本地主机IP地址,但您还需要告诉您的本地主机Web服务器期望该域名上的流量以及将其指向根文件夹中的位置。执行此操作的方法因web服务器软件而异,但如果您提供一些信息,我们可能会提供帮助!因此,在进一步调查之后,问题似乎是我的机器上有一个本地api,使用apache作为Web服务器,但试图调用此api的代码正在使用nginx在一个Vagrant box上运行,因此当该Vagrant box上的php进入“localhost”路由时,它不知道我试图让它点击的本地主机是我本地机器上的主机。你知道我怎么能告诉它打那个吗?谢谢在这里找到了答案:我不知道“10.0.2.2”为什么有效,但它确实有效。谢谢你的帮助!