为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 在循环中迭代地将 post 请求发送到远程服务器?

如何使用 PHP 在循环中迭代地将 post 请求发送到远程服务器?

PHP
墨色风雨 2023-09-08 21:39:21
我试图根据数组的大小多次向服务器发送数据。该循环一次正确发送数据,但此后不再发送数据。我的代码是:    $id = "uuid" //dynamic      $username = "emailadd@example.com";    $password = "password";    $serverurl = "http://0.0.0.0:8080/api/v1/experiments/". $id ."/buckets";    $alloc = floor((1 / sizeof($arrayAsBigAsValueArray)) * 100) / 100;    $sum = 0;    for ($x = 0; $x < sizeof($valuearray); $x++){        $datasobj = array(            "label" => $arrayAsBigAsValueArray[$x],             "allocationPercent" => $alloc,            "payload" => json_encode(array('mykey'=>$valuearray[$x]),JSON_UNESCAPED_SLASHES)        );        if($x< sizeof($valuearray)-1){            $sum += $alloc;        }        else{            if((1 - $sum) != 0){                $datasobj ["allocationPercent"] = (1 - $sum);             }        }        $headers = array(            "Content-type: application/json",            "Authorization: Basic " . base64_encode("$username:$password")        );        $ch = curl_init($serverurl);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLINFO_HEADER_OUT, true);        curl_setopt($ch, CURLOPT_POST, true);        curl_setopt($ch, CURLOPT_POSTFIELDS, $datasobj);        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);        $result2 = curl_exec($ch);        curl_close($ch);    }这个函数是从 WordPress 的 admin-ajax 调用的,并且有一个 javascript 函数调用它。当 X > 0 时,我收到 400 错误。如何解决此问题?我正在尝试使用 Wasabi A/B api,可以在此处找到。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

400从哪里来?你的服务器还是芥末?

如果它来自 Wasabi,根据您的curl 请求,我怀疑 API 上有速率限制器。您必须在请求之间延迟。最简单的是 sleep()。

或者,

"payload" => json_encode(array('mykey'=>$valuearray[$x])...

是否有多个授权密钥,每个请求一个?数组是否正确填充?

查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 58 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信