将 CURL 转换为 PHP CURL 调用但出现授权错误

Convert CURL in to PHP CURL call but getting error of authorization

我正在像下面这样调用 cURL,但想转换成 PHP 格式

curl https://apis.voicebase.com/v2-beta/media \
--header "Authorization: Bearer $token" \
--form media=@/home/harshal/Desktop/100Hz_44100Hz_16bit_30sec.wav\
| tee media-post-response.json | jq '.'

上面的 cURL 想要转换成如下 PHP 格式

    set_time_limit(0);
    $ch = curl_init();      
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 0);
    curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 0);
    curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 60);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
    curl_setopt($ch, CURLOPT_URL, $url);                
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);      
    $result = json_decode(curl_exec($ch),TRUE);
    curl_close($ch);

但出现授权错误,但是当我将参数传递给 cURL(如 Token 和 audioUrl)时,它起作用了。但是当像上面那样传递参数时它不起作用 php CURL_OPT

检查 php curl official manual ,它说:

CURLOPT_HTTPHEADER  
    An array of HTTP header fields to set, in the format array('Content-type:   text/plain', 'Content-length: 100')

所以我认为您需要将 $header 更改为 $header = array("Authorization: Bearer ${token}")