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

将Curl请求转为Guzzle后调用Cloudflare API出现解码错误排查

问题分析与解决:Guzzle调用Cloudflare Stream Copy API返回"decoding error"

你的Guzzle请求存在两处关键问题,直接导致API返回解码错误:

  1. 请求体格式不匹配
    原curl命令通过-d传递JSON字符串作为请求体,API要求接收application/json格式的数据。但你的Guzzle代码使用了form_params参数,这会把数据编码为application/x-www-form-urlencoded的表单格式,和API预期的格式完全不符,自然无法解析。

  2. PHP数组语法错误
    在meta子数组中,你用了JavaScript风格的冒号:定义键值对,而PHP里数组的键值对应该使用=>来声明。

修正后的Guzzle代码

$response = $client->request('POST', 'https://api.cloudflare.com/client/v4/accounts/' . $accountId . '/stream/copy', [
    'headers' => [
        'Authorization' => 'Bearer ' . $token,
    ],
    'json' => [
        "url" => "https://storage.googleapis.com/zaid-test/Watermarks%20Demo/cf-ad-original.mp4",
        "meta" => [
            "name" => "My First Stream Video"
        ]
    ]
]);

说明:使用json参数时,Guzzle会自动设置Content-Type: application/json请求头,同时将数组编码为标准JSON字符串,完全匹配原curl的请求格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:20:21