来自 wordpress 的 REST API 调用中的服务不可用

Posted

技术标签:

【中文标题】来自 wordpress 的 REST API 调用中的服务不可用【英文标题】:Service unavailable in REST API call from wordpress 【发布时间】:2021-11-17 14:17:38 【问题描述】:

从 wordpress + woocommerce 的基本安装中,我创建了一个自定义插件,它使用不记名令牌在 GET 协议中调用 API。我从邮递员那里复制了 php curl 代码,在本地和邮递员上我都可以毫无问题地连接到其余服务。但是如果我使用 wordpress 中的相同代码,我会得到“503 Service Unavailable”。不是专家我不知道问题是由于 apache2 / .htacces 文件的错误配置,还是 wordpress 添加了标题或其他导致调用在 503 中失败的事情

我在这里报告调用 curl

protected function getGetData($url,$token)
    $curl = curl_init();
    $auth= 'Authorization: Bearer '.$token;
    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',
        CURLOPT_HTTPHEADER => array(
            $auth
        ),
    ));

    $response = curl_exec($curl);
    curl_close($curl);
    return $response;

我已经尝试关闭所有 wordpress 插件,但没有任何结果。特别是通过更改某些设置,有时调用第一次返回 200,但从第二次开始,它继续返回 503。从邮递员和本地 php 改为每次执行函数时都会工作

【问题讨论】:

【参考方案1】:

我做了一些检查,在这些情况下,我注意到建议首先禁用 wordpress 端的每个插件,然后检查提供 API 的人是否没有控制。就我而言,我发现服务器的调用限制超出了我的限制,并且它返回了 503。

【讨论】:

以上是关于来自 wordpress 的 REST API 调用中的服务不可用的主要内容,如果未能解决你的问题,请参考以下文章

WordPress REST API v2 返回所有图像,而不仅仅是来自选定的帖子

使用 WordPress REST API 删除媒体

将 WordPress Rest API 请求限制到我的域

Angular JSONP 调用 WordPress JSON REST API

Laravel Wordpress JSON REST API 给出奇怪的 Curl 错误

Wordpress Rest Api 在自定义端点上使用 POST 更新内容