首页 > 解决方案 > 来自 wordpress 的 REST API 调用中的服务不可用

问题描述

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

我在这里报告呼叫卷曲

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 改为每次执行函数时都会工作

标签: phpwordpressapiapacherest

解决方案


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


推荐阅读