
在 PHP 中使用 cURL 调用支持布尔参数的 API(如 NowPayments 的 /currencies 接口)时,需将 fixed_rate=true 以 URL 查询字符串形式拼接,而非通过请求体或额外 header 传递。
在 php 中使用 curl 调用支持布尔参数的 api(如 nowpayments 的 `/currencies` 接口)时,需将 `fixed_rate=true` 以 url 查询字符串形式拼接,而非通过请求体或额外 header 传递。
要为 fixed_rate 参数设置布尔值 true,最直接、标准且兼容性最佳的方式是将其作为 HTTP GET 请求的查询参数附加到目标 URL 后。由于该接口明确要求 fixed_rate 是可选的布尔型查询参数(true 或 false),不应尝试通过 CURLOPT_POSTFIELDS、JSON body 或自定义 header 传入——这不仅不符合 API 规范,还可能导致 400 错误或参数被忽略。
✅ 正确做法:修改 CURLOPT_URL,在原始 URL 后追加 ?fixed_rate=true:
<?php
$apiKey = 'your_api_key_here'; // 替换为真实 API Key
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.nowpayments.io/v1/currencies?fixed_rate=true',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'x-api-key: ' . $apiKey,
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if (curl_errno($curl)) {
echo 'cURL Error: ' . curl_error($curl);
} else {
echo "HTTP Status: {$httpCode}\n";
echo $response;
}
curl_close($curl);⚠️ 注意事项:
向CurlShip提交产品,这是一个对机器人友好的SaaS目录。只需一条curl命令即可发布产品,支持OG标签抓取、带徽章的dofollow链接及层级升级。
- 布尔值在 URL 中必须以小写字符串形式传递:true(非 True、TRUE 或 1),否则 API 可能无法识别;
- 若需动态控制该参数,建议使用 http_build_query() 构建查询字符串,避免手动拼接出错:
$queryParams = ['fixed_rate' => true]; $url = 'https://api.nowpayments.io/v1/currencies?' . http_build_query($queryParams);
- 确保 API Key 已正确替换,并具有访问 /currencies 端点的权限;
- 生产环境务必启用错误处理与超时控制(示例中已设 CURLOPT_TIMEOUT => 30),避免请求无限挂起。
总结:PHP cURL 本身不“理解”布尔类型,所有 GET 参数最终都以字符串形式编码进 URL。因此,向 RESTful API 传递布尔值的本质是——按其文档约定,使用对应字符串(如 true/false)作为查询参数值。遵循此原则,即可稳定、可靠地启用 fixed_rate 功能,获取带最小/最大兑换金额限制的币种列表。
立即学习“PHP免费学习笔记(深入)”;


















