首页 > 解决方案 > curl 使用 PHP 问题 - 如何通过更改 url 调用多个 api 请求

问题描述

我必须进行 api 调用,它返回 4 个带有 id 的记录(我能够成功地做到这一点)。现在我必须遍历每个返回的 id,并使用这个 id 进行 api 调用。此 id 附加在 url 的末尾。最好的方法是什么?

例如:

Step1:我打了一个api调用。这将返回 4 个 ID。我能够成功地进行 api 调用。

第 2 步:我将这四个 id 分配给一个数组。我使用 json_decode 并使用 foreach 循环这四个记录,并将 id 存储在一个数组中。

第 3 步:现在我遍历这个数组,每次设置 url 时,我都会在 url 的末尾添加 url + $arr[$increment_val]。所以基本上,我的代码是这样的:

$curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt_array($curl, 数组(

CURLOPT_URL => "https://example.com/v1/getid?id=" 。$arr[i], //这里 i 从 0 变为 4

CURLOPT_RETURNTRANSFER => 真,

CURLOPT_ENCODING => "",

CURLOPT_MAXREDIRS => 10,

CURLOPT_TIMEOUT => 30,

CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

CURLOPT_CUSTOMREQUEST => "GET",

CURLOPT_HTTPHEADER => 数组(

"authorization: xxxxxxxxxxxxx"

),

));

$responses = curl_exec($curl);

    $err = curl_error($curl);

    if ($err ) {

        echo "cURL Error #:" . $err;

    } 

    else {

        $json = json_decode($responses, true);

        print_r(json)

    }

第 4 步:我执行这个 api 调用,执行 json_decode。但它返回空数组。

如果我在步骤 3 中对 url 中的一个 id 进行硬编码,我会得到一个结果。

例如:CURLOPT_URL => "https://example.com/v1/getid?id=1234",

我究竟做错了什么?

还是有更好的方法来做到这一点?

非常感谢,

问候,

希瓦姆

标签: apicurl

解决方案


推荐阅读