簡體   English   中英

卷曲到php以發布json和音頻

[英]curl to php to post a json and audio

我正在嘗試轉換curl命令以在php腳本中使用

   curl -k -F "request={'timezone':'America/New_York','lang':'en'};type=application/json" -F "voiceData=@d8696c304d09eb1.wav;type=audio/wav" -H "Authorization: Bearer x" -H "ocp-apim-subscription-key:x" "http://example.com"

這是我的PHP腳本

<?
$data = array("timezone" => "America/New_York", "lang" => "en", "voiceData" => "d8696c304d09eb1.wav");                                                                    
$data_string = json_encode($data);                                                                                   
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
   'Authorization: Bearer x',
   'ocp-apim-subscription-key:x')
);
$result = curl_exec($ch);
?>

我了解發送音頻文件的位不正確,但我找不到如何發布它的示例。

我已經編輯了此內容以響應發布字段,但是如果我包含$ ch,則不輸出,如果不包含輸出會抱怨沒有發布請求。 有任何想法嗎?

<?
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-type: application/json',
   'Authorization: Bearer x',
   'ocp-apim-subscription-key:x')
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 
    array('request' => json_encode(array('timezone' => 'America/New_York', 'lang' => 'en')),
          'voicedata' => new CURLFile("d8696c304d09eb1.wav")
    )
);
$result = curl_exec($ch);
echo $result;
?>

您在POST字段中缺少request= 另外,不建議使用@filename發送文件,您應該使用CURLFile類。

curl_setopt($ch, CURLOPT_POSTFIELDS, 
    array('request' => json_encode(array('timezone' => 'America/New_York', 'lang' => 'en')),
          'voicedata' => new CURLFile("d8696c304d09eb1.wav")
    )
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM