You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PHP中的cURL代码以调用指定GET API接口

修正PHP CURL代码以匹配API文档要求

根据你提供的API文档和现有代码,需要做出以下关键修改才能正确调用API:

核心问题与修改点

  • 变量名不一致:原代码中curl_init()赋值给$curl,但后续错误使用未定义的$ch设置请求头,需统一变量名为$curl。
  • URL构造完全错误:
    • 未替换API URL中的占位符{type}和{query}:需用判断后的$param(email或phone)替换{type},用处理后的$param_val替换{query}
    • 错误添加了冗余的/by-token?token=123=部分:API文档要求通过api-key请求头传递密钥,而非URL参数
    • 正确URL格式应为:https://example.com/api/v2/'.$param.'/'.$param_val.'?timeout=60
  • 请求头缺失且被覆盖:原代码中先设置的Accept: application/json被后续curl_setopt_array中的空HTTP头数组覆盖,需在数组中同时添加Accept: application/json和api-key: 123两个请求头。
  • 未执行函数调用:接收$_POST["keyword"]参数后,没有调用get_uid函数并输出结果。
  • 错误处理不完善:捕获CURL错误后未返回或输出错误信息,需补充错误返回逻辑。

修正后的完整代码

<?php

if(!isset($_POST["keyword"]))
{
 echo "missing a required data";
 exit;
}

function get_uid($param_val){
    
    $curl = curl_init();

    $param = "email";
    if (!filter_var($param_val, FILTER_VALIDATE_EMAIL)) {
        $param = "phone";
        $param_val = urlencode($param_val);
    }

    // 构造正确的API URL
    $url = "https://example.com/api/v2/{$param}/{$param_val}?timeout=60";

    curl_setopt_array($curl, array(
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "GET",
      // 添加正确的请求头
      CURLOPT_HTTPHEADER => array(
        'accept: application/json',
        'api-key: 123'
      ),
    ));

    $response = curl_exec($curl);
    
    // 处理CURL错误
    if (curl_errno($curl)) {
        $error_msg = curl_error($curl);
        curl_close($curl);
        return "CURL Error: " . $error_msg;
    }
    
    curl_close($curl);
    
    return $response;   
}

// 调用函数并输出结果
echo get_uid($_POST["keyword"]);
?>

内容的提问来源于stack exchange,提问作者NewbieHD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:01:27