簡體   English   中英

將帶有 php (curl) 的 Json 和音頻文件發布到 Laravel API

[英]Post Json and audio file with php (curl) to a laravel API

我正在使用下面的代碼將 json 和音頻文件發布到我在 laravel 上構建的 api

     $endPoint = 'http://localhost:9000/api/audio/send';
     $apiKey = 'anvx7P7ackndaD8MvXlufSaG4uJ901raoWIwMPGZ93dkH';
     $url = $endPoint . '?key=' . $apiKey;
     $curlFile = new \CURLFile('/Users/desktop/myapp/public/Voice/aaaah.wav');            
     $data = array("request" => 
     json_encode(array("test" => "First audio ",'recipient' =>['442342342', '35345242'])) . ";
     type=application/json","file" => "@d8696c304d09eb1.wav;type=audio/wav");

                $ch = curl_init();
                $headers = array();
                $headers[] = "Content-Type: application/json";
                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                $result = curl_exec($ch);
                $result = json_decode($result, TRUE);
                curl_close($ch);
            return $result;

當我將我的 json 提交給 api 時,它從 api 返回 null。 這意味着沒有數據被發布到我的 api。 請問我如何將我的json和音頻文件發布到laravel api有什么錯誤嗎?

PS:PHP初學者

您不能以 JSON 格式發布文件!。

需要一個普通的 POST 請求(從<form>元素生成的請求)來發布文件。

如果您必須使用 JSON 發送文件,請對其進行 base64_encode 並發送。 但在另一端,服務器需要先對它進行 base64_decode。

暫無
暫無

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

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