如何在PHP中进行api调用

时间:2019-08-26 14:23:46

标签: php postman php-curl

我使用邮递员测试了API。使用邮递员,我设法生成了令牌。

我从邮递员设法通过GET请求使用以下详细信息获取了用户的所有数据:

https://example.example.co.za/api/consumers/get?id=567675675&email=example@sample.com

在“授权”类型下,我选择“承载者令牌”,并将该令牌粘贴到其各自的字段中。

单击“发送”时,我将收到用户数据的成功响应。

在PHP中,如何在php函数中执行相同的api调用(使用id,email和token)?

我尝试过:

curl_setopt_array($curl, array(
    CURLOPT_URL => "example.example.co.za/api/consumers/get?email=example@sample.com&id=567675675",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_POSTFIELDS => "",
    CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Authorization: Bearer jhgukfytjfytdytfjgjyfytfjkugfyfdhtklhkugjf",
    "Cache-Control: no-cache",
    "Connection: keep-alive",
    "Content-Type: application/x-www-form-urlencoded",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

return $response;

但是当我查看页面而不是用户数据时,会看到以下内容:

enter image description here

如何在函数内进行API调用以获得与PHP邮递员相同的结果?

2 个答案:

答案 0 :(得分:3)

您需要遵循位置

CURLOPT_FOLLOWLOCATION => true

https://www.php.net/manual/de/function.curl-setopt.php

答案 1 :(得分:0)

请在此处找到合适的CURL调用。

       $url = "https://example.example.co.za/api/consumers/get?id=567675675&email=example@sample.com";
       $curl = curl_init();

       // OPTIONS:
       curl_setopt($curl, CURLOPT_URL, $url);
       curl_setopt($curl, CURLOPT_HTTPHEADER, array(
          'APIKEY: 111111111111111111111',
          'Content-Type: application/json',
       ));
       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

       // EXECUTE:
       $result = curl_exec($curl);
       if(!$result){die("Connection Failure");}
       curl_close($curl);