如何在同一脚本中进行两次curl调用

时间:2019-10-30 15:44:20

标签: php api curl

我正在通过curl php向第三方进行API调用。 该代码可以正常工作,但是由于我要进行两次POST和GET,所以我必须刷新页面以获得GET调用的响应

我尝试使用Ajax,但它却抛出了CORS错误

function callAPI($method, $url, $data){ 
    global $company_api_key;
    switch ($method){
    case "POST":
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_POST, 1);
        if ($data)
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
                        'Authorization: Basic '.base64_encode("$company_api_key") ,
                        '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);
        return $result;
        break;
    case "GET": 
        $ch = curl_init();  
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                        'Authorization: Basic '.base64_encode("$company_api_key") ,
                        'Content-Type: application/json',
                        ));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        // EXECUTE:
        $result = curl_exec($ch);
        if(!$result){die("Connection Failure");}
        curl_close($ch);
        return $result;
        break;
    default:
        echo "something went wrong with API call";
    }
}
$make_call = callAPI('POST', 'post-url', json_encode($data_array));

此呼叫后我得到一个ID,然后在GET呼叫中使用该ID

 $get_data = callAPI('GET', 'get-url'.$id, false);

现在我要一个接一个地打电话给他们,所以我尝试使用AJAX进行GET调用,但出现CORS错误。

0 个答案:

没有答案