在 WordPress 中发出 cURL 请求时出现 504 网关超时错误

504 Gateway Time-out error when making cURL request in WordPress

提问人:Diane Rendel 提问时间:11/15/2023 最后编辑:Diane Rendel 更新时间:11/15/2023 访问量:72

问:

尝试在 WordPress 环境中发出 cURL 请求时,我遇到了 504 网关超时错误。我在下面包含了相关代码:

function welkvoxapi() {
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wv{{wolkvox_server}}.wolkvox.com/api/v2/campaign.php?api=add_record&type_campaign={{type_campaign}}&campaign_id={{campaign_id}}&campaign_status={{campaign_status}}',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'[{
            "customer_name": "namewv",
            "customer_last_name": "field_3d8268c",
            "customer_id": "field_d3976af",
            "city": "field_5dd4679",
            "opt1": "field_9f10881",
            "opt3": "field_6d254ff",
            "opt4": "field_363c904",
            "opt5": "field_a5de87f",
            "opt6": "field_dc05404",
            "opt7": "field_9a9a683",
            "opt8": "field_383d50f",
            "email": "field_8981d35"  


}]',
  CURLOPT_HTTPHEADER => array(
    'wolkvox-token: {{token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


}
add_action('init', 'welkvoxapi');

我已将以下 cURL 代码添加到我的 WordPress 主题的函数 .php 文件中,以便与 Wolkvox API 进行交互。但是,当我保存代码时,页面无法加载,并且遇到“504 网关超时”错误。

Wolkvoks 文档。

此外,我在 AWS 上托管我的 WordPress 网站,但我不确定这是否与遇到的问题有关。

我已经替换了CURLOPT_URL和令牌中的相应信息。

我将不胜感激有关解决“504 网关超时”问题的任何指导。此外,如果在 WordPress 中集成 cURL 请求有任何注意事项或最佳实践,我很想知道。

php wordpress 卷曲

评论

0赞 Don't Panic 11/15/2023
尝试将 URL 复制粘贴到浏览器中 - 您可能会收到错误,但它会很快返回,还是也会超时?您可以尝试添加和显示一些 curl 调试,以验证 WP 和主题是否正确运行该方法以及 curl 代码是否实际运行。

答:

-1赞 Erwin Moller 11/15/2023 #1

首先创建一个包含表单的简单 PHP 文件,然后发布该文件。像这样的东西:

注意两件事:

  1. 确保表单中的操作正常,并且包含与问题中的示例相同的操作(该长 URL)。 因此,请确保将所有占位符(如 {wolkvox_server}})替换为实际的正确值。

  2. 请确保在 HTTP 请求中添加带有令牌的标头。 'wolkvox-token: {{token}}'

然后模拟 CURL 调用:

<form action="https://wv{{wolkvox_server}}.wolkvox.com/api/v2etcetc" Method="POST">
<input type="text" name="customer_last_name" value="field_3d8268c">
<input type="text" name="customer_id" value="field_d3976af">

etc etc
 <input type="Submit" value="Post me">
</form>

输入所有 POST 名称值对:

"customer_name": "namewv",
            "customer_last_name": "field_3d8268c",
            "customer_id": "field_d3976af",
            "city": "field_5dd4679",
            "opt1": "field_9f10881",
            "opt3": "field_6d254ff",
            "opt4": "field_363c904",
            "opt5": "field_a5de87f",
            "opt6": "field_dc05404",
            "opt7": "field_9a9a683",
            "opt8": "field_383d50f",
            "email": "field_8981d35"  

它回来了什么?

评论

0赞 DarkBee 11/15/2023
这并不能回答这个问题......
0赞 Erwin Moller 11/16/2023
@DarkBee我知道。这是解决问题的第一步。而且它不适合评论。